English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

題目是:試設計一程式,輸入一成績n,判斷n屬那一級。F級:0-59,D級:60-69,C級:70-79,B級:80-89,A級:90-100。

我寫的程式:

#include

using namespace std;

int n;

int main()

{

cout<<\"please Enter a number\";

cin>>n;

if (0<=n<=59)

cout<

if (60<=n<=69)

cout<
if (70<=n<=79)

cout<
if (80<=n<=89)

cout<

else

cout<
return 0;
}

為什麼怪怪的...

2006-07-24 13:33:15 · 2 個解答 · 發問者 ? 2 in 電腦與網際網路 程式設計

2 個解答

ps..1.遇到多重判斷,請練習用if...else if....else;2.你的邏輯判斷式有問題,0<=n<=59,在c++裡這樣用會有問題,應該要用n>=0&&n<=59這樣才是正確的。#include using namespace std;int n;int main(){ cout<<"please Enter a number"; cin>>n; if(n>=0&&n<=59)  cout<=60&&n<=69)  cout<=70&&n<=79)  cout<=80&&n<=89)  cout<

2006-07-24 14:27:57 · answer #1 · answered by Almond 6 · 0 0

這題很有規律,可以不用一堆 if
char s[] = {"EDCBA"};
if (n < 60) n = 'F';
else if (n==100) n = 'A';
else n = s[n/10] + 'D' - 6;//可能是 5 或 7 。自己試一下。

或(因為只有 11 種成績,不多,以用下列寫法)
char s[] = {"FFFFFDCBAA"};
if (n < 60) n = 'F';
else if (n==100) n = 'A';
else n = s[n/10];

2006-07-24 23:53:27 補充:
哎呀,我忘了,沒有'E'!
第一個作法裡,"EDCBA"要改成"DCBA"

2006-07-24 23:56:07 補充:
白痴,第二個作法也錯!
char s[] = {"FFFFFDCBAA"};
n = s[n/10];
就好了!

第一個作法的最後一列,只要
n = s[n/10];
就可以了!

熬了 N 夜,真的該去睡了!不要再在這裡誤導別人 + 丟人現眼!~.~"

程式若還有小錯,請包含。

2006-07-24 19:52:27 · answer #2 · answered by ? 7 · 0 0

fedest.com, questions and answers