当前位置: 代码迷 >> C语言 >> 这道题怎么修改??????xxxxxxxxxxxxxxxxxxxxxxxxxxx
  详细解决方案

这道题怎么修改??????xxxxxxxxxxxxxxxxxxxxxxxxxxx

热度:134   发布时间:2008-04-16 19:51:23.0
这道题怎么修改??????xxxxxxxxxxxxxxxxxxxxxxxxxxx
有道题,要求输入的如果是数字的话就累加起来,直到输入一个非数字的,则输出累加结果并退出。。怎么写???


这是自己写的
#include<stdio.h>
int main()
{
    int a,b;
        for(a=0;b!='%d';)
        {
            scanf("%d",&b);
            a=a+b;
            printf("%d\n",a);
        }
}

输入数字时正常,但是输入字母的时候就不会正常退出。。。

[[it] 本帖最后由 chendsily 于 2008-4-16 21:23 编辑 [/it]]
搜索更多相关的解决方案: 正常  

----------------解决方案--------------------------------------------------------
for语句后的b!='%d'中的%d该是%s吧?另外好像应该在加一个break,当b为非数字时!
----------------解决方案--------------------------------------------------------
还是有点不明白
----------------解决方案--------------------------------------------------------
............

[[it] 本帖最后由 bianfeng 于 2008-4-16 20:48 编辑 [/it]]
----------------解决方案--------------------------------------------------------
顶上去,看有没有人肯帮忙
----------------解决方案--------------------------------------------------------
有没有人看到???
----------------解决方案--------------------------------------------------------
貌似错误不是一处!
----------------解决方案--------------------------------------------------------
那是哪一处,请帮忙指出来。谢谢
----------------解决方案--------------------------------------------------------
那样写不好
感觉这样写不错
#include"stdio.h"
int main(void)
{
    int x,sum;
    sum=0;
    while((scanf("%d",&x)==1))
    sum+=x;
    printf("%d\n",sum);
    return 0;
}
----------------解决方案--------------------------------------------------------
直接用这个吧!

#include<stdio.h>
int main(void)
{
    int a;
    char b;
    int flag;
    flag=0;
    a=0;
H:
    b=getchar();
    fflush(stdin);
    if(b>='0'&&b<='9')
        flag=1;
    else
        flag=0;
    switch(flag)
    {
    case 1:
        a=a+(b-48);
        printf("%d\n",a);
        goto H;
        break;
    default :printf("Error!\n");
    }
    return 0;
}


我是新手!  貌似楼上的比我的好!  嘿嘿!
----------------解决方案--------------------------------------------------------