|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include<stdio.h>
- int main()
- {
- int a[10];
- int num,i;
-
- printf("请输入待录入的整数个数:");
- scanf("%d",&num);
-
- for(i=0;i<num;i++)
- {
- printf("请输入第%d个数:",i+1);
- a[i]=getchar();//这用scanf就可以
- }
-
- printf("你录入的整数是:");
- for(i=0;i<num;i++)
- {
- printf("%d ",a[i]);
- }
-
- return 0;
- }
复制代码
第14行中,a[i]=getchar();会导致程序运行错误,请问是为什么?
本帖最后由 jackz007 于 2022-7-25 01:01 编辑
getchar() 会返回一个字符,而不是我们所预期的那个整型数,例如,如果你按下 5 <Return> 那么,getchar() 返回的是 '5',也就是说,是字符 5,其 ASCII 编码是 53,所以,最后实际打印出来的数值将会是 53。所以,不要自以为是,在这种场合,必须使用 scanf()。
- #include<stdio.h>
- int main()
- {
- int a[10] ;
- int num,i ;
-
- printf("请输入待录入的整数个数:") ;
- scanf("%d", & num) ;
- fflush(stdin) ; // 调用 getchar() 前,必须清空 scanf() 遗留在键盘缓冲区内的回车字符 '\n',注意必须二字!!!
-
- for(i=0;i<num;i++)
- {
- printf("请输入第%d个数:",i+1);
- a[i]=getchar();//这用scanf就可以
- }
-
- printf("你录入的整数是:");
- for(i=0;i<num;i++)
- {
- printf("%d ",a[i]);
- }
-
- return 0;
- }
复制代码
|
|