无法找到错误 - Turbo C.

时间:2015-03-25 11:49:32

标签: c++

我正在制作一个简单的程序来添加两个数字。我做的一切都是正确的,但不知怎的,它显示出错误。

我正在使用TurboC for windows7 64bit(从filezilla下载)...我也使用了devcpp,但是在使用void main()时显示错误...为什么会这样? 为什么不起作用?

此外,是否有人可以为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

3 个答案:

答案 0 :(得分:3)

问题在于您的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(),但标准明确规定我们不应对main()使用void,而应使用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作为参考

答案 1 :(得分:1)

我只专注于错误:

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

答案 2 :(得分:1)

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

scanf("%d",num1);

应该成为:

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