2015-03-25 51 views
-4

我正在做一个简单的程序来添加两个数字。我做了一切正确的,但不知何故它显示一个错误。我使用TurboC的Windows7 64位(从filezilla下载)...我也使用devcpp,但是它有使用void main()的错误...为什么这是这样的? 为什么它不起作用?无法找到错误 - Turbo C

此外,任何人都可以提出一些好的软件来编程基于控制台为项目C,C++等?

#include<stdio.h> 
#include<conio.h> 
void main() 
{ 
clrscr(); 
int num1=0,num2=0; 

//printing hello world 
//printf("Hello World!"); 

printf("Enter number 1 : "); 
scanf("%d",num1); 
printf("Enter number 2 : "); 
scanf("%d",num2); 
int num3 = num1+num2; 
printf("The sum of %d and %d is %d",num1,num2,num3); 
getch(); 
} 

enter image description here enter image description here

+1

你并不需要一个更好的软件,你需要阅读一本关于C语言。 – axiac 2015-03-25 11:53:19

+3

看起来它使用了很老的C标准,并且不允许你在函数中声明变量。 – Predelnik 2015-03-25 11:53:43

+0

我知道C语言,并且在我的学校也使用过Turbo C,在那里它工作得很好。他们有Windows XP和早期版本安装在那里的机器。这只是与Windows7 – 2015-03-25 12:12:39

回答

2

问题是与你的scanf()。接受值时,您必须在变量前添加&。一元&返回它旁边的变量的地址,然后scanf()将该值存储在该地址。但请注意,除非您确实要打印地址,否则您不需要在printf()中使用&。总之,改变你的scanf()年代到

scanf("%d",&num1); 

scanf("%d",&num2); 

这是你的工作代码代码

#include<stdio.h> 

int main() 
{ 

int num1=0,num2=0; 

//printing hello world 
//printf("Hello World!"); 

printf("Enter number 1 : "); 
scanf("%d",&num1);     // see here 
printf("Enter number 2 : "); 
scanf("%d",&num2);     // and here 
int num3 = num1+num2; 
printf("The sum of %d and %d is %d",num1,num2,num3); 

} 

void main()的错误是,它不再受理。在像TurboC这样的旧版本中,您可以使用void main(),但该标准明确指出我们不应该使用void作为main(),而应该使用int main()
阅读本参考

What should main() return in C and C++?

而且,不要使用<conio.h>。它在标准中不被支持。如果你想清除屏幕,加上头文件<stdlib.h>和使用system("cls");

关于更换getch(),你可以只使用getchar()。 (尽管在某些程序中,你将不得不使用两个或更多的getchar()

有一件事你应该知道,那就是TurboC和DevC++都过时了。

你应该可能会得到代码块。

因为在C99之前(您的IDE TurboC运行在比C99更早的版本上),您将得到“此处不允许的声明”错误,因此必须在块的开头声明变量。您可以使用Declaration not allowed here error in C作为参考

+0

的情况下,谢谢你......你说conio.h不支持标准,那么我怎样才能清除我的屏幕? – 2015-03-25 12:05:32

+0

还有一个问题......在第15行中分配第3个数字时,它显示错误“声明不允许在这里”......如何解决这个问题? – 2015-03-25 12:07:46

+0

@RaunakHajela,将'int num3'移动到程序的开头,并使用'num3 = num1 + num2;' – 2015-03-25 12:17:21

1

我只专注于错误:

printf("Enter number 1 : "); 
scanf("%d",&num1); //use & for input 
printf("Enter number 2 : "); 
scanf("%d",&num2); //use & for input 
1

当您使用scanf(),你必须提供你写使用&变量的地址。

scanf("%d",num1); 

应该变成:

scanf("%d",&num1); //add the & to refer to the address