我寫了這么一段簡單的程式,運行不了,報告(Run-Time Check Failure #3 - The variable 'g' is being used without being initialized) 的錯誤,使用的VS2019,大佬幫幫我吧

#include <stdio.h>
#include<math.h>
int main()
{
float x;
char g;
scanf_s("%f", &x);
int y = x / 10;
switch (y)
{
case'0':
case'1':
case'2':
case'3':
case'4':
case'5':g = 'E'; break;
case'6':g = 'D'; break;
case'7':g = 'C'; break;
case'8':g = 'B'; break;
case'9':
case'10':g = 'A';
}
printf("%c %d", g,y);
return 0;
}
uj5u.com熱心網友回復:
case '10' 存在語法錯誤。單引號里面是一個字符,‘10’是2個字符。uj5u.com熱心網友回復:
#include <stdio.h>
#include<math.h>
int main()
{
float x;
char g;
scanf_s("%f", &x);
int y = x / 10;
switch (y)
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
g = 'E';
break;
case 6:
g = 'D';
break;
case 7:
g = 'C';
break;
case 8:
g = 'B';
break;
case 9:
case 10:
g = 'A';
break;
default:
printf("Not support!\n");
break;
/*
case'0':
case'1':
case'2':
case'3':
case'4':
case'5':g = 'E'; break;
case'6':g = 'D'; break;
case'7':g = 'C'; break;
case'8':g = 'B'; break;
case'9':
case'10':g = 'A';
*/
}
printf("%c %d", g,y);
return 0;
}
供參考~
樓主應該是是分不清楚'1'和1的區別。
x /10,當x是100以內的資料,x/10得到的是0~10之間的資料。而'1'是字符,對應的10進制是48
uj5u.com熱心網友回復:
謝謝,問題解決了。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/50723.html
標籤:C語言
