話不多說直接上代碼 ,問題在下面。
#include <stdio.h>
#include <windows.h>
#define N 10000
float Jia(void);
float Jian(void);
float Cheng(void);
float Chu(void);
float Storage(void);
int Kb(void);
char menu(void)
{
char way;
printf("___________________________________\n");
printf(" M E N U \n");
printf("a.加法運算 b.減法運算\n");
printf(c.乘法運算 d.除法運算\n");
printf("e.歷史記錄(5次以內的資料)f.停止 \n");
printf("請輸入 計 算 模 式: ...... \n");
printf(" ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\n");
for(;;)
{
printf("shuru");
way=getchar();
while (getchar() != '\n')
continue;
if ('a' <= way && way <= 'f')
{
break;
}
else
{
printf("輸入的模式不正確,請重新輸入:\n");
}
}
return way;
}
int main()
{
char way;
float result=0;
way=menu();
while (way != 'f')
{
switch (way)
{
case'a':Jia(); break;
case'b':Jian(); break;
case'c':Cheng(); break;
case'd':Chu(); break;
case'e':Storage(); break;
default:printf("error\n");
break;
}
break;
}
}
float Jia(void)
{
float x1, x2,result;
printf("請輸入第1個數字:\n");
scanf_s("%f", &x1);
printf("請輸入第2個數字:\n");
scanf_s("%f", &x2);
result = x1 + x2;
printf("result=%.5f\n", result);
Kb();
return result;
}
float Jian(void)
{
float x1, x2, result;
printf("請輸入第1個數字:\n");
scanf_s("%f", &x1);
printf("請輸入第2個數字:\n");
scanf_s("%f", &x2);
result = x1 - x2;
printf("result=%.5f\n", result);
Kb();
return result;
}
float Cheng(void)
{
float x1, x2, result;
printf("請輸入第1個數字:\n");
scanf_s("%f", &x1);
printf("請輸入第2個數字:\n");
scanf_s("%f", &x2);
result = x1 * x2;
printf("result=%.5f\n", result);
Kb();
return result;
}
float Chu(void)
{
float x1, x2, result;
printf("請輸入第1個數字:\n");
scanf_s("%f", &x1);
printf("請輸入第2個數字(除數):\n");
scanf_s("%f", &x2);
if (x2 == 0)
{
while (x2 == 0)
{
printf("除數必須為非0,請重新輸入:\n");
scanf_s("%f", &x2);
}
}
result = x1/x2;
printf("result=%.5f\n", result);
Kb();
return result;
}
float Storage(void)
{
return 0.0f;
}
float Storage (float c)
{
float a[N];
for (int i = 0; i <= 5; i++)
{
a[i] = c;
}
return a[N];
}
int Kb(void)
{
char way;
int a;
printf("按下[空格]回到選單欄\n");
while (1)
{
a = GetKeyState(VK_SPACE);
if (a < 0)
{
way=menu();
break;
}
}
return 0;
}
問題:當我運行了第一次計算后按下空格回到選單欄后,第二次輸入任何一個模式編號時都顯示”模式不正確“,這是為什么呢?在線等 ,挺急的。
uj5u.com熱心網友回復:
第二次輸入時,menu函式里面way得到的值應該是個'\n'回車,所以就不正確了。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/225181.html
標籤:C語言
上一篇:求助:C語言的題
下一篇:這道題咋做啊啊啊啊
