我都是新手編程,所以請幫助我。看來結果變量沒有一個正確的值。我知道最好使用cin
和cout
,但我的導師要求我使用printf
和scanf
。如果和比較==
如果我將代碼更改爲printf(「%d」,result);我將得到: 運行時檢查失敗#3 - 變量'結果'正在使用而未被初始化。 ,如果我將代碼更改爲scanf(「%c」,& c); %c將從第一個scanf()獲得空白!所以我必須這樣寫scanf(「%c%* c」,& c);或者這種方式scanf(「%c」,& c);.似乎%c與%d或%f不同,並不會跳過空格。
#include<stdio.h>
#include<conio.h>
int main ()
{
int n1, n2;
int result;
char c;
printf("Lotfan addad aval ra vared konid\n");
scanf("%d", &n1);
printf("Lotfan addad Dovom ra vared konid\n");
scanf("%d", &n2);
printf("Please choose an operator\n");
scanf("%c%*c", &c);
if (c=='+')
{
result=n1+n2;
}
else if (c=='-')
{
result=n1-n2;
}
else if (c=='*')
{
result=n1*n2;
}
else if (c=='/')
{
result=n1/n2;
}
//else
//{
//printf("error");
//}
//printf("%d%c%d=%d" ,n1,c,n2,&result);
printf("%d", &result);
getch();
return 0;
}
我這是C還是C++?看看你的代碼(除了不正確的'main'聲明之外),你會認爲它是C.你學習了哪種語言?他們是不同的。 – 2013-02-26 15:00:30
@WilliamPursell我認爲區別在這裏沒有任何意義。 – 2013-02-26 15:03:08
你的導師的建議是不好的,類型安全的C++流是首選。如果您必須使用'printf',則添加一些用於診斷程序流程,然後在其工作後將其取出。或者學習如何在調試器中執行代碼(額外功勞) – 2013-02-26 15:03:52