2012-10-13 90 views
0

我试图做一个简单的C计算器,因为我是一个新手,并认为这将是一个好主意。这是我的代码:简单的C计算器错误

#include <stdio.h> 
main() 
{ 
char b; 
int a,c,d; 
printf("Please enter your first number: "); 
scanf("%d",&a); 
printf("Please enter your second number: "); 
scanf("%d",%c); 
printf("Enter your operation"); 
scanf("%c",&b); 
if (b == 'a') 
{ 
    d = a + c; 
    printf("The answer is: %d",d); 
} 
} 

当我编译的代码,这是错误/警告我得到:

D:...|4|warning: return type defaults to 'int'| 
D:...||In function 'main':| 
D:...|10|error: expected expression before '%' token| 

是否有人可以帮忙吗?

+2

声明main()为int main(void)并返回0。 –

回答

5

变化中scanf%&

scanf("%d", &c); 
      ^

另外,代替main你想int main,你或许应该在年底返回的东西。

+0

从C99开始,返回main的东西并不是必须的。如果主体的末端没有返回,则返回0。请参阅C99 5.1.2.2.3:'[达到}终止主函数的返回值为0.' – halex

+0

@halex我知道,但我仍然认为它是很好的形式。 – cnicutar

+0

我总是这样做:)。只是想澄清 – halex

1

比较这两种线,并告诉我们有什么区别:

scanf("%d",&a); 
scanf("%d",%c);