标题:帮我找看错在那里啊[求助]
只看楼主
amzyb
Rank: 1
等 级:新手上路
帖 子:76
专家分:0
注 册:2005-1-10
得分:0 
#include <stdio.h> void main() { int a,b,c,i; /*定义变量,a,b为输入数据,c为输出结果,d为运算符号*/ char d; do /*do循环判断输入的a,b都不为0*/ { i=0; printf("please put in the first num\n"); scanf("%d",&a); printf("please put in the second num\n"); scanf("%d",&b); printf("please put in the char:\n"); file://scanf("%s",&d); getchar(); d=getchar(); if ((b==0&&d=='/')||(b==0&&d=='%')){ printf("doing is wrong\n"); i=1; } }while (i==1); /*获取输入的运算符号*/ file://d=toupper(d); switch (d) /*选择语句判断根据所输入的运算符号,选择运算和打印*/ { case '+' : c=a+b; printf("c=a+b=%d+%d=%d",a,b,c); break; case '-' : c=a-b; printf("c=a-b=%d-%d=%d",a,b,c); break; case '*' : c=a*b; printf("c=a*b=%d*%d=%d",a,b,c); break; case '/' : c=a/b; printf("c=a/b=%d/%d=%d",a,b,c); break; case '%' : c=a%b; printf("c=a%b=%d%%d=%d",a,b,c); break; default: break; } getchar(); } 小调了一下!
2005-02-15 15:54
ssa
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2005-1-28
得分:0 
那你们用你的那套帮我计算一下5/2

看是2.5还是2啊
2005-02-18 00:12
shade
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2005-2-12
得分:0 
&lt;marquee&gt;我学了两个月C,还是看不懂,等于没有学啊&lt;/marquee&gt;

如果你有兴趣的话,我们一起学习一起讨论 QQ:66035018 E-mail:shadedir@ zzrong147@.cn
2005-02-18 13:50
myth42
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2005-2-18
得分:0 

/* 原程序我修改了一下个人的风格,内容没有变 建议作者多看一下编程风格和规范方面的书籍 */ #include "stdio.h" main() { /*定义变量,a,b为输入数据,c为输出结果,d为运算符号*/ int a,b,c; char d; /*do循环判断输入的a,b都不为0*/ do { printf("please put in the first num\n"); scanf("%d",&a); printf("please put in the second num\n"); scanf("%d",&b); if (a*b==0) printf("doing is wrong\n"); } while (a*b==0);

/* 出错在这里:当你输入第二个数的时候,要用回车确认,此时标准输入流(stdin)中包括“b的输入值”和“回车” 而"scanf("%d", b);"这一个语句只接收了“b的输入值”, “回车”则仍在stdin中,下一句"d = getch();"所接收到的是“回车”,而不是你输入的运算符. */

/*获取输入的运算符号*/ printf("please put in the char"); /* 解决方法:1.在此加多一句 "d = getchar();" 以接收掉“回车”; 2.在此加多一句 "fflush(stdin)" 以刷新标准输入流stdin; */ d=getchar(); d=toupper(d); /*选择语句判断根据所输入的运算符号,选择运算和打印*/ switch (d) { case '+' : c=a+b; printf("c=a+b=%d+%d=%d",a,b,c); break; case '-' : c=a-b; printf("c=a-b=%d-%d=%d",a,b,c); break; case '*' : c=a*b; printf("c=a*b=%d*%d=%d",a,b,c); break; case '/' : c=a/b; printf("c=a/b=%d/%d=%d",a,b,c); break; case '%' : c=a%b; printf("c=a%b=%d%%d=%d",a,b,c); break; }

getch(); }


我是风中的一粒尘,为寻找雾里的那滴露而飘泊,虽然我孤独,但我快乐!!!!
2005-02-18 14:55
mengge
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2005-2-10
得分:0 
谢谢
版主你能不能介绍几本这方面的书我看看
我没有经验
还有一点就是
按照你那么说
scanf("%a\n",&amp;a) 应该接收拉回车拉是吗?


2005-02-22 06:36
myth42
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2005-2-18
得分:0 
没有这么好的书,只有实践遇到才能学会。(我也是在论坛上找到答案的)

你的问题我不是很懂,如果你不想要scanf("%a", &amp;a); 接收到上次输入所留的回车,你可以在%前加一个空格(以使scanf不接收类似空格之类的字符( " ", \t ,\n)),具体作用你看一下scanf的用法。

如果你把老谭的书看完后,不明的再问问老师,应该可以得到很扎实的基础。

我是风中的一粒尘,为寻找雾里的那滴露而飘泊,虽然我孤独,但我快乐!!!!
2005-02-22 16:02
mengge
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2005-2-10
得分:0 
我现在就是在看谭老大的书
现在到指针那里遇到问题拉
2005-02-22 23:44
myth42
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2005-2-18
得分:0 
要学好C,指针是不可逃避的,要多上机实践验证。努力吧,呵呵!(我也不会指针,哈哈)

我是风中的一粒尘,为寻找雾里的那滴露而飘泊,虽然我孤独,但我快乐!!!!
2005-03-05 22:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-12110-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.278526 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved