我撰寫了一個C語言程式,用VS2017測驗。程式能夠編譯,但是輸入完資料后就彈窗顯示 run-time check failure #3,顯示b沒有初始化。但是我用DEV c++運行的時候,輸入資料后卻沒顯示相類似的錯誤。這是為什么?下面是代碼,求大佬幫忙看看。我整個程式里就只有這個函式定義了b,肯定是這里出的問題。
char optr[7] = { '+','-','*','/','(',')','#' };
int cmptr[7][7] =
{ {1,1,2,2,2,1,1},
{1,1,2,2,2,1,1},
{1,1,1,1,2,1,1},
{1,1,1,1,2,1,1},
{2,2,2,2,2,3,0},
{1,1,1,1,0,1,1},
{2,2,2,2,2,0,3}
};
char precede(char e, char c) {
int a, b;
for (int i = 0; i < 7; i++) {
if (optr[i] == e) a = i;
if (optr[i] == c) b = i;
}
switch (cmptr[a][b])
{
case 1:
return '>';
break;
case 2:
return '<';
break;
case 3:
return '=';
break;
default:
printf("PRE ERROR!\n");
return 1;
break;
}
}
uj5u.com熱心網友回復:
你B沒有初始化,DEBUG模式下會提示你,因為邏輯原因,導致你有可能使用沒有初始化得變數。uj5u.com熱心網友回復:
哦哦我知道了,那看來是我寫的有問題導致b的賦值失敗了。
謝謝大佬!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/101676.html
標籤:C語言
下一篇:大佬解決一問題唄
