int jiafa();
int jianfa();
int chengfa();
float chufa();
int main(void)
{int x;
char c;
int y;
printf("Welcome to use this little calculator!!!\n");
printf("Now you can start calculating...\n");
printf("Input a number:\n");
scanf("%d",&x);
printf("Input a calculating char:\n");
c=getchar();
printf("Input anther number:\n");
scanf("%d",&y);
switch(c){
case 43 :{ jiafa(x,y);
break;}
case 45 :{ jianfa(x,y);
break;}
case 42 :{ chengfa(x,y);
break;}
case 47 :{ chufa(x,y);
break;}
case 101 :{ puts("you want to exit the program,exiting now...\n");
break;}
default: {puts("you put wrong command,try again!");}
}
return 0;}
int jiafa(int a, int b)
{ int answer;
answer=a+b;
printf("the answer is:%d\n",answer);
return(answer);}
int jianfa(int a, int b)
{ int answer;
answer=a-b;
printf("the answer is:%d\n",answer);
return(answer);}
int chengfa(int a, int b)
{ int answer;
answer=a*b;
printf("the answer is:%d\n",answer);
return(answer);}
float chufa(int a, int b)
{ float answer;
answer=a/b;
printf("the answer is:%f\n",answer);
return(answer);}
我想编写一个简单的计算器,嘻嘻。上面列出来的还没有完全编好,但是我编译是成功的,运行结果却是这个样子的:
Welcome to use this little calculator!!!
Now you can start calculating...
Input a number:
3
Input a calculating char:
Input anther number:
5
you put wrong command,try again!
我想了很久也不知道是为什么?所以贴来这里,想请大家帮我看一看。
我是个笨笨,大家要是觉得我编的程序可笑,也不要使劲拍我呀!哈
谢谢!!!
embedman 于 2009-04-16 23:49:35发表:
看到这个帖子,我深有体会,太希望学嵌入式Linux的朋友能多多发帖,我做过一些很简单的程序,理论上绝对不会错的,可就是不运行。但是同样的程序在烧进NAND FLASH就能运行,直接烧进SDRAM却不能运行。百般无奈......
ShinyGuo 于 2009-03-13 20:24:26发表:
建议楼主写程序时注意些格式。你这样写,小程序还行,大了让别人看,会很痛苦的...
ShinyGuo 于 2009-03-13 20:22:19发表:
[i=s] 本帖最后由 ShinyGuo 于 2009-3-13 20:23 编辑 [/i]
当然还没有解决了。原因是:getchar()一次只接收一个字符。你输入3的时候其实接收的是3\n,多了个回车字符。等下一个getchar()就把\n当成操作符来接收了。进入switch里边的回车符当然跟+-*/对不上号。
c=getchar();应该改为:while((c=getchar()) == '\n') ;
意思是如果getchar()得到的是回车符,就什么也不做,接着getchar。明白不?
winterwy 于 2009-03-09 21:02:11发表:
4# michrykitty
{:2_97:} 嗯! 唉,这个问题其实还没解决
michrykitty 于 2009-03-09 15:09:48发表:
精彩!我也在学习中:0wmjh(1
winterwy 于 2009-03-09 10:38:19发表:
2# wang7131984
:0wl;l1
恩,知道了
谢谢!
wang7131984 于 2009-03-09 10:07:15发表:
getchar()只能接受一个字符而实际上你输入了一个字符串“x\n"
c=getchar()
getchar()
y=getchar()