❶ c語言作業 老師要求用switch 來判定學生分數等級
#include<conio.h>
#include <stdio.h>
int main()
{
int s,x;
char n[5];
while(1)
{
printf("\n please enter your name:");
gets(n);
if(n[0]=='q' && n[1]=='u' && n[2]=='i' && n[3]=='t' && n[4]=='\0') //這樣就可以輸入quit就退出了
break;
printf("\n please enter your score.");
scanf("%d",&s);
getchar(); //這里要用getchar吸收掉scanf按下回車時產生的換行符
if(s>=80 && s<=100)
{
x=1;
}
else if(s>=70 && s<=79)
{
x=2;
}
else if(s>=60 && s<=69)
{
x=3;
}
else if(s>=50 && s<=59)
{
x=4;
}
else if(s>=0 && s<=49)
{
x=5;
} //這里漏了個},導致x一直都是5
switch(x)
{
case 1:
printf("HD");
break;
case 2:
printf("D");
break;
case 3:
printf("C");
break;
case 4:
printf("C");
case 5:
printf("N");
break;
default:
printf("\n please enter a number between 0 and 100");
}
}
return 0;
}
已經通過編譯,不懂追問,望採納~~
P.S LZ代碼規范不好,看得我頭有點大。。。
❷ C語言中成績分級(用switch語句)的問題
因為switch語句是順序執行的,而你的case語句結尾沒有加break也就是說你的case會按順序一個一個執行,直到結束,當你輸入的是90 的時候,進入case 10 也就是按順序執行到case 9:輸出A,緊接著走到了case 8:輸出B,緊接著走到了case:7輸出C,緊著著進入case:6輸出D,而因為有相應的case相匹配,所以default不會被執行,緊接著進入下一個循環。。。 沒有break語句的話呢,在執行完一句之後呢,就不會自動跳出,而是會繼續執行其他以下的語句,有了break之後,每次執行了一句之後,就會自動跳出switch,就不會出現你說的情況了
❸ 求 用C語言中switch語句編寫學生成績問題
……scanf("%f",&a);b=(int)(a/10);switch(b){ case 9: printf("A");break; ……}主要是case後面要常量表達式,這樣就必須把區間轉化為單值!
❹ C語言用switch語句進行成績等級判斷
C語言用switch語句進行成績等級判斷可以採用以下的代碼:
main()
{int i,a;
scanf("%d",&a);
i=a/10;
switch a
{case '10':
case '9': printf("A"); break;
case '8': printf("B"); break;
case '7': printf("C"); break;
case '6': printf("D");
else printf("E");
}
}
(4)c語言switch成績擴展閱讀:
Switch在一些計算機語言中是保留字,其作用大多情況下是進行判斷選擇。以C語言來說,switch(開關語句)常和case break default一起使用。
C語言程序語句
Switch用在編程中,如C語言中它經常跟Case一起使用,是一個判斷選擇代碼。其功能就是控制流程流轉的。
直線翻譯:switch語句,即「切換」語句;case即「情況」。
switch語句的語法如下(switch,case,break和default是關鍵字):
switch ( 變數表達式 )
{
case 常量1 :語句;break;
case 常量2 :語句;break;
case 常量3 :語句;break;
...
case 常量n:語句;break;
default :語句;break;
}
❺ 如何用C語言中switch語句編寫學生成績問題
while(ture)
{
string
input;
//接受用戶輸入的欄位
//提示用戶輸入
//將輸入的賦值給input
if(input=="exit")
{
break;
}
else
{
//注意這里需要將遠input字元串類型的轉換為int
類型
switch(input)
case
input<100
and
input>90:
printlf("A");
break;
...............
default
break;
有點抱歉
C語言好久沒碰了.忘記的差不多了.結構大體這樣.
}
}
❻ C語言中用switch語句把成績分級
每一次case做完都要break, 如果不break的話會繼續判斷下面case.
❼ C語言中從鍵盤輸入一個學生成績,如何用switch輸出成績和檔次
switch里有三種寫法,第一種就是每個單獨寫出來如:(這種如果數據多的話不推薦,比如這題)
switch(score) {
case 90: case 91://...case 100:
//優秀。。
break;
case 80:case 81:case 82: //...case 89:
//中等。。
break;
}
第二種就是進行縮小范圍,如:(這種如果數據分布很有規律就用,比如這題)
switch(score/10) {
case 10: case 9: //優秀..
break;
case 8: //中等
break;
}
第三種是函數的寫法,這適用於數據分布無規律而不能進行縮小范圍時,假如90~96為優秀,97~100為特優秀的話,可以這樣,如:(這種適用於數據分布無規律)
int score_fun(int score)
{
if(score >= 97)
return 1;
if(score >= 90)
return 2;
if(score >= 80)
return 3;
}
//....
switch(score_fun(score)) {
case 1: //特優秀。。
break;
case 2: //優秀。。
break;
case 3: //中等。。
break;
}
❽ 編寫C語言程序 用switch結構或if語句 輸入成績 輸出等級
// ConsoleApplication17.cpp : 定義控制台應用程序的入口點。
//
#include "stdafx.h"
#include<stdio.h>
int main()
{
int score;
printf("請輸入分數: ");
scanf("%d",&score);
switch(score/10)
{
case 10:
case 9:
printf("A(最好) ");
break;
case 8:
printf("B(優秀) ");
break;
case 7:
printf("C(良好) ");
break;
case 6:
printf("D(及格) ");
break;
default:
printf("E(不及格) ");
break;
}
}
❾ C語言用switch函數輸出成績等級,怎麼無法輸出
你好!你的switch
語句的花括弧應該打在default:g='F';break;後面,即printf("%c\n",g);
return
0;應該在switch語句外面,否則每次執行switch語句後都break出來了,不會執行列印輸出語句!
改動後程序:
#include
<stdio.h>
main()
{
int
s;
char
g;
scanf("%d",&s);
switch((int)s/10){
case
10:g='A';break;
case
9:g='B';break;
case
8:g='C';break;
case
7:g='D';break;
case
6:g='E';break;
default:g='F';break;
}
printf("%c\n",g);
return
0;
}
❿ c語言中用 switch 怎麼寫然後輸入一個分數根據分數段輸出 ABCDE。
常用的方法 就是把分數除10
然後對結果進行switch