|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
问题:以下C程序,运行时会出现乱码,然而在scanf函数中将scanf("%d,%d",&a,&b)中的"%d,%d"中间的逗号改为在中文状态下输入的逗号就能够正常运行,不是应该在英文状态下输入吗?
题目:让用户随便输入两个数字,然后对这两个数字继续输出,要求输出的数字是从大到小的顺序。请编写程序。
#include <stdio.h>
int main(void)
{
int a,b,t;
scanf("%d,%d",&a,&b);
if(a<b)
{
t=a;
a=b;
b=t;
}
printf("%d,%d\n",a,b);
return 0;
}
在某些操作系统以及编译器中,语言环境设置或字符集设置可能会影响scanf函数对于逗号的处理,导致输入逗号时出现乱码。因此,在这种情况下无法保证用英文状态下的逗号作为分隔符正常工作。解决方案是使用特定语言环境下所需的逗号分隔符。
该程序可以通过以下方式来读取用户输入的数字, 并且将它们以从大到小顺序输出:
- #include <stdio.h>
- int main() {
- int a, b;
- printf("请输入两个数字,用空格隔开:");
- scanf("%d %d", &a, &b);
- if (a < b) {
- int temp = a;
- a = b;
- b = temp;
- }
- printf("%d %d\n", a, b);
- return 0;
- }
复制代码
这里使用了空格作为scanf函数中的分隔符,而非逗号。
|
|