A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 剑气近 于 2014-6-15 21:10 编辑

我用c语言写了个简单的计算器程序,编译运行时却出现了一些不该出现的错误并且还发现了答案会一闪而逝,久思无果,特来求助!谢谢!
问题1:

#include <stdio.h>
#include <math.h>
main()
{   int i;
    double a,b,d,e;
    char c;
    printf("请输入两个数字:\n");
    printf("请输入第一个数字:\n");
    scanf("%lf",&a);
    while ( (c = getchar()) != '\n' && c != EOF ) ;
    printf("请输入第二个数字:\n");
    scanf("%lf",&b);
    while ( (c = getchar()) != '\n' && c != EOF ) ;
        printf("请输入一个算术符号:\n");
        scanf("%c",&c);
        while ( (c = getchar()) != '\n' && c != EOF ) ;
    for(i=c,i=0;i='=';i++)
    {
   
        switch (c)
        {
            case '+':d=a+b;break;
            case '-':d=a-b;break;
            case '*':d=a*b;break;
            case '/':d=a/b;break;
            default :printf("输入的算术符号有误!");
            
        }
         printf("请问算法结束不?如果结束,请按=得出你的答案。\n");
        printf("否则,请按第三个数字:\n");
        while ( (c = getchar()) != '\n' && c != EOF ) ;
        scanf("%lf",&e);
        a=d;
        b=e;  
        break ;
    }
    printf("答案是:%lf\n",d) ;
    return 0;
}
这段程序运行时为什会这样?

评分

参与人数 1技术分 +1 收起 理由
傘が咲く + 1

查看全部评分

3 个回复

倒序浏览
楼主还有很多语法上的错误!
比如while();直接跟了;符号,这样子就直接结束了while循环

还有for循环里面,i=c,i=0,不知道是用意,然后后面判断i等于'='结束循环的条件,应该用i=="="而不是一个=

楼主再仔细巩固一下基础语法!加油!

评分

参与人数 1技术分 +1 收起 理由
傘が咲く + 1

查看全部评分

回复 使用道具 举报
huangqiwa 发表于 2014-6-14 23:12
楼主还有很多语法上的错误!
比如while();直接跟了;符号,这样子就直接结束了while循环

谢谢你的解答,确实基础语法不牢固,检查修改后程序正常运行,共同进步!
回复 使用道具 举报
看来我也要多努力了才行
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马