这个程序为什么是个死循环
//当我输入英文字母,为什么是个死循环。#include<stdio.h>
#include<stdlib.h>
#define week 7
int main()
{
int days;
printf("Enter days,it will change for weed ,days\n");
scanf("%d",&days);//这里应该将英文字母转换为有符号十进制数了
while(days>0)
{
printf("%d are %d weeks,%d days\n",days,days/week,days%week);
printf("enter next\n");
scanf("%d",&days);
}
system("pause");
return 0;
}
----------------解决方案--------------------------------------------------------
因为scanf("%d",...)不能处理字母。
所以出什么毛病都是正常的,不出毛病才是不正常的。
每个函数都有自己的局限,了解局限性正确使用也是学习的一部分。
----------------解决方案--------------------------------------------------------
不对啊,要是%s,他就能处理啊
----------------解决方案--------------------------------------------------------
是啊,我也没说%s不能处理字母啊。
%s的局限在于不能处理空格。
----------------解决方案--------------------------------------------------------
呵呵 这是字符..
----------------解决方案--------------------------------------------------------
哦,知道了。谢谢
----------------解决方案--------------------------------------------------------
scanf("%d", &days); 无法把非数字字符转换为有符号整数
----------------解决方案--------------------------------------------------------