当前位置: 代码迷 >> C语言 >> 今天发现一个很基础的问题!
  详细解决方案

今天发现一个很基础的问题!

热度:80   发布时间:2007-09-11 18:17:47.0
今天发现一个很基础的问题!
main()
{char a,b;
scanf("%c,%c",&a,&b);
printf("%c %c",a,b);
getch();
}
输入97,98
为什么输出9 2
搜索更多相关的解决方案: 基础  

----------------解决方案--------------------------------------------------------
scanf("%c,%c",&a,&b);

scanf("%d,%d",&a,&b);

因为格式不对应所输出的任何结果都没有什么意义


by 雨中飞燕 QQ:78803110 QQ讨论群:5305909

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url]
[url=http://bbs.bc-cn.net/viewthread.php?tid=162918]C++编写的Windows界面游戏[/url]
[url=http://yzfy.org/]C/C++算法习题(OnlineJudge):[/url] http://yzfy.org/
----------------解决方案--------------------------------------------------------

呵呵。。。不过我知道是格式的问题,至于为什么是9和2,我也不明白


----------------解决方案--------------------------------------------------------
由于scanf("%c,%c",&a,&b);中以逗号为分隔符,
当输入97,98时,首先取第一个字符'9'赋给a,然后,用第二个字符'7'与','去匹配发现不成功,
然后,程序就退出scanf()函数,b的值保持不变.
可以参考这个程序:
main()
{char a,b='a';
scanf("%c,%c",&a,&b);
printf("%c %c",a,b);
getch();
}
输入97,98回车后,b的值是不是还是'a'

----------------解决方案--------------------------------------------------------
这问题很难理解哦!!为什么程序只取9赋值给a呢,,还有第2个字符7去匹配发现不成功是什么意思,,能说得详细点吗??

这题目定义的也是字符变量,scanf(函数中的c%表示输入的是字符串,97和98貌似不是字符串吧?)虽然97和98包含在字符集char内的.但是它们的字符应该用a和b来表示吧?你这题目应该是想在屏幕上输出97和98这两个数字,这程序这样写应该就没问题了!!输出的必须是个整型,因为97和98不属于字符串!

我也是初学者,,可能我的思维逻辑也是错的,,希望大家给我纠正纠正!

#include <stdio.h>
#include <conio.h>
int main(void)
{char a,b;
scanf("%c,%c",&a,&b);
printf("%d %d",a,b);
getch();
return 0;
}
----------------解决方案--------------------------------------------------------
楼上没错啊
----------------解决方案--------------------------------------------------------
  相关解决方案