2015-03-25 50 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