我正在制作一个简单的程序来添加两个数字。我做的一切都是正确的,但不知怎的,它显示出错误。
我正在使用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();
}
答案 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