当前位置: 代码迷 >> C语言 >> 这个程序为什么是个死循环
  详细解决方案

这个程序为什么是个死循环

热度:129   发布时间:2008-01-18 19:54:42.0
这个程序为什么是个死循环
//当我输入英文字母,为什么是个死循环。
#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;
}
搜索更多相关的解决方案: next  英文字母  include  change  

----------------解决方案--------------------------------------------------------
因为scanf("%d",...)不能处理字母。
所以出什么毛病都是正常的,不出毛病才是不正常的。

每个函数都有自己的局限,了解局限性正确使用也是学习的一部分。
----------------解决方案--------------------------------------------------------
不对啊,要是%s,他就能处理啊
----------------解决方案--------------------------------------------------------
是啊,我也没说%s不能处理字母啊。
%s的局限在于不能处理空格。
----------------解决方案--------------------------------------------------------
呵呵 这是字符..
----------------解决方案--------------------------------------------------------
哦,知道了。谢谢
----------------解决方案--------------------------------------------------------
scanf("%d", &days);   无法把非数字字符转换为有符号整数
----------------解决方案--------------------------------------------------------
  相关解决方案