真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語言用函數(shù)判定成績 c語言成績判斷代碼

c語言作業(yè) 老師要求用switch 來判定學生分數(shù)等級

首先指出你的疑問:因為你的switch語句在最后一個if語句中,也就是說,當分數(shù)為s=0s=49時才執(zhí)行switch語句,此時x==5。于是就執(zhí)行case

創(chuàng)新互聯(lián)建站自2013年創(chuàng)立以來,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都網(wǎng)站建設(shè)、網(wǎng)站制作網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元田東做網(wǎng)站,已為上家服務(wù),為田東各地企業(yè)和個人服務(wù),聯(lián)系電話:028-86922220

5了。

修改:把switch語句與if語句并列。

更好的:你為什么用了if語句還要用switch語句呢,直接在if語句中輸出不就行了嗎?

還有輸入quit退出的問題:建議使用scanf在接收字符串n。接收字符串n后判斷是否等于”quit“,如果等于則break,退出while循環(huán),否則往下執(zhí)行。判斷時可以用strcmp函數(shù)進行判斷,也可以逐個的對字符串n進行判斷。

為什么要用scanf而不用gets:當進行下一次的輸入時,上次輸入完分數(shù)后的回車會被這次的gets給吃掉;于是就會發(fā)現(xiàn),當進行這次的輸入時,”please

enter

your

name“,

”please

enter

your

score.“會同時出現(xiàn)。

下面是我?guī)湍阈薷牡某绦颍旧蠜]動。

#include

#include

int

main()

{

int

s,x;

char

n[5];

while(1)

{

printf("\n

please

enter

your

name:");

scanf("%s",

n);

if(n[0]=='q'

n[1]=='u'

n[2]=='i'

n[3]=='t')

{

break;

}

else

printf("\n

please

enter

your

score.");

scanf("%d",s);

if(s=80s=100)

{

x=1;

}

else

if(s=70s=79)

{

x=2;

}

else

if(s=60s=69)

{

x=3;

}

else

if(s=50s=59)

{

x=4;

}

else

if(s=0s=49)

{

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

and

100");

}

}

return

0;

}

這是我自己隨意修改的:

#include

#include

#include

int

main()

{

int

s,x;

char

n[5];

while(1)

{

printf("\n

please

enter

your

name:");

scanf("%s",

n);

if(strcmp(n,

"quit")==0)

{

break;

}

else

printf("\n

please

enter

your

score.");

scanf("%d",s);

if(s=80s=100)

{

printf("HD");

}

else

if(s=70s=79)

{

printf("D");

}

else

if(s=60s=69)

{

printf("C");

}

else

if(s=50s=59)

{

printf("C");

}

else

if(s=0s=49)

{

printf("N");

}

else

{

printf("\n

please

enter

a

number

between

and

100");

}

}

return

0;

}

c語言編程,根據(jù)分數(shù)劃分成績

二、目的與要求

1. 目的:

(1)基本掌握面向過程程序設(shè)計的基本思路和方法;

(2)達到熟練掌握C語言的基本知識和技能;

(3)能夠利用所學的基本知識和技能,解決簡單的程序設(shè)計問題

2. 要求

基本要求:

1. 要求利用C語言面向過程的編程思想來完成系統(tǒng)的設(shè)計;

2. 突出C語言的函數(shù)特征,以多個函數(shù)實現(xiàn)每一個子功能;

3. 畫出功能模塊圖;

4. 進行簡單界面設(shè)計,能夠?qū)崿F(xiàn)友好的交互;

5. 具有清晰的程序流程圖和數(shù)據(jù)結(jié)構(gòu)的詳細定義;

6. 熟練掌握C語言對文件的各種操作。

創(chuàng)新要求:

在基本要求達到后,可進行創(chuàng)新設(shè)計,如系統(tǒng)用戶功能控制,對管理員級和一般級別的用戶系統(tǒng)功能操作不同

三、信息描述

輸入一個班10個學生的學號和每個學生考試三門功課(數(shù)學、英語、計算機基礎(chǔ))的成績。編程計算出每個學生的總分和平均分,并按學生成績優(yōu)劣排序,最后打印一張按高分到低分名次排序的成績單。要求:

1)排序用一個函數(shù)實現(xiàn)。

2)打印的成績單表項包括:序號,學號、數(shù)學、英語、計算機、總分、平均分。

3)按實驗報告電子模板格式填寫實驗內(nèi)容。

四、功能描述

1. 學生基本信息及成績所選科目成績的錄入。

2. 基本信息的查詢(分系、班級;分科目)與修改。

3. 對每系或每班各科成績進行分析(即求單科平均成績、及格率和優(yōu)秀率);

4. 對所開課程的成績分析(求其平均成績,最高分和最低分);

5. 對學生考試成績進行排名(單科按系別或班級進行排名,對每一個班級,同一學期學生總體成績進行排名,并顯示各科成績信息)

五、解決方案

1. 分析程序的功能要求,劃分程序功能模塊。

2. 畫出系統(tǒng)流程圖。

3. 代碼的編寫。定義數(shù)據(jù)結(jié)構(gòu)和各個功能子函數(shù)。

4. 程序的功能調(diào)試。

5. 完成系統(tǒng)總結(jié)報告以及使用說明書

六、進度安排

此次課程設(shè)計時間為兩周,分四個階段完成:

1. 分析設(shè)計階段。指導教師應(yīng)積極引導學生自主學習和鉆研問題,明確設(shè)計要求,找出實現(xiàn)方法,按照需求分析、總體設(shè)計、詳細設(shè)計這幾個步驟進行。

2. 編碼調(diào)試階段:根據(jù)設(shè)計分析方案編寫C代碼,然后調(diào)試該代碼,實現(xiàn)課題要求的功能。

3. 總結(jié)報告階段:總結(jié)設(shè)計工作,寫出課程設(shè)計說明書,要求學生寫出需求分析、總體設(shè)計、詳細設(shè)計、編碼、測試的步驟和內(nèi)容。

4. 考核階段。

#include stdio.h

#include stdlib.h

#define STU_NUM 10 /*宏定義學生的數(shù)量*/

struct student /*定義一個結(jié)構(gòu)體用來存放學生學號、三門課成績、總分及平均成績*/

{

char stu_id[20]; /*學生學號;*/

float score[3]; /*三門課成績;*/

float total; /*總成績;*/

float aver; /*平均成績;*/

};

/*排序用一個函數(shù)來實現(xiàn)*/

void SortScore(student *stu,int n)

{

student stud;

for(int i = 0; i n-1; i++)

for(int j = i+1 ; j n; j++)

{

if(stu[i].total stu[j].total)

{

stud = stu[i];

stu[i] = stu[j];

stu[j] = stud;

}

}

}

int main( )

{

student stu[STU_NUM]; /*創(chuàng)建結(jié)構(gòu)體數(shù)組中有10個元素,分別用來保存這10個人的相關(guān)信息。*/

/*輸入這十個學生的相關(guān)信息*/

for(int i = 0; iSTU_NUM; i++)

{

printf("請輸入第%d個學生的學號:",i+1);

scanf("%s",stu[i].stu_id);

printf("輸入第%d個學生的數(shù)學成績:",i+1);

scanf("%f",stu[i].score[0]);

printf("輸入第%d個學生的英語成績:",i+1);

scanf("%f",stu[i].score[1]);

printf("輸入第%d個學生的計算機成績:",i+1);

scanf("%f",stu[i].score[2]);

stu[i].total = stu[i].score[0]+stu[i].score[1]+stu[i].score[2];

stu[i].aver = stu[i].total/3;

}

printf("\n");

SortScore(stu,STU_NUM);/*調(diào)用排序函數(shù)*/

/*輸出排序后的各學生的成績*/

for(i = 0 ; i STU_NUM; i++)

{

printf("序號: %d\t",i);

printf("學號:%s\t",stu[i].stu_id);

printf("數(shù)學:%f\t",stu[i].score[0]);

printf("英語:%f\t",stu[i].score[1]);

printf("計算機:%f\t",stu[i].score[2]);

printf("平均成績:%f\t",stu[i].aver);

printf("總分:%f\t",stu[i].total);

printf("\n\n");

}

return 0;

}

注:(源程序中主要標識符含義說明)

#define STU_NUM 10 /*宏定義學生的數(shù)量*/

struct student /*定義一個結(jié)構(gòu)體用來存放學生學號、三門課成績、總分及平均成績*/

{

char stu_id[20]; /*學生學號;*/

float score[3]; /*三門課成績;*/

float total; /*總成績;*/

float aver; /*平均成績;*/

}

實驗結(jié)果:

輸入 :(只輸入后面的數(shù)字,前面的文字是自己產(chǎn)生的)。

請輸入第1個學生的學號:001

輸入第1個學生的數(shù)學成績:1

輸入第1個學生的英語成績:1

輸入第1個學生的計算機成績:1

請輸入第2個學生的學號:002

輸入第2個學生的數(shù)學成績:2

輸入第2個學生的英語成績:2

輸入第2個學生的計算機成績:2

請輸入第3個學生的學號:003

輸入第3個學生的數(shù)學成績:3

輸入第3個學生的英語成績:3

輸入第3個學生的計算機成績:3

請輸入第4個學生的學號:004

輸入第4個學生的數(shù)學成績:4

輸入第4個學生的英語成績:4

輸入第4個學生的計算機成績:4

請輸入第5個學生的學號:005

輸入第5個學生的數(shù)學成績:5

輸入第5個學生的英語成績:5

輸入第5個學生的計算機成績:5

請輸入第6個學生的學號:006

輸入第6個學生的數(shù)學成績:6

輸入第6個學生的英語成績:6

輸入第6個學生的計算機成績:6

請輸入第7個學生的學號:007

輸入第7個學生的數(shù)學成績:7

輸入第7個學生的英語成績:7

輸入第7個學生的計算機成績:7

請輸入第8個學生的學號:008

輸入第8個學生的數(shù)學成績:8

輸入第8個學生的英語成績:8

輸入第8個學生的計算機成績:8

請輸入第9個學生的學號:009

輸入第9個學生的數(shù)學成績:9

輸入第9個學生的英語成績:9

輸入第9個學生的計算機成績:9

請輸入第10個學生的學號:010

輸入第10個學生的數(shù)學成績:10

輸入第10個學生的英語成績:10

輸入第10個學生的計算機成績:10

輸出:

序號: 0 學號:010 數(shù)學:10.000000 英語:10.000000 計算機:10.000000

平均成績:10.000000 總分:30.000000

序號: 1 學號:009 數(shù)學:9.000000 英語:9.000000 計算機:9.000000

平均成績:9.000000 總分:27.000000

序號: 2 學號:008 數(shù)學:8.000000 英語:8.000000 計算機:8.000000

平均成績:8.000000 總分:24.000000

序號: 3 學號:007 數(shù)學:7.000000 英語:7.000000 計算機:7.000000

平均成績:7.000000 總分:21.000000

序號: 4 學號:006 數(shù)學:6.000000 英語:6.000000 計算機:6.000000

平均成績:6.000000 總分:18.000000

序號: 5 學號:005 數(shù)學:5.000000 英語:5.000000 計算機:5.000000

平均成績:5.000000 總分:15.000000

序號: 6 學號:004 數(shù)學:4.000000 英語:4.000000 計算機:4.000000

平均成績:4.000000 總分:12.000000

序號: 7 學號:003 數(shù)學:3.000000 英語:3.000000 計算機:3.000000

平均成績:3.000000 總分:9.000000

序號: 8 學號:002 數(shù)學:2.000000 英語:2.000000 計算機:2.000000

平均成績:2.000000 總分:6.000000

序號: 9 學號:001 數(shù)學:1.000000 英語:1.000000 計算機:1.000000

平均成績:1.000000 總分:3.000000

七、撰寫課程設(shè)計報告或課程設(shè)計總結(jié)

課程設(shè)計報告要求:

總結(jié)報告包括需求分析、總體設(shè)計、詳細設(shè)計、編碼(詳細寫出編程步驟)、測試的步驟和內(nèi)容、課程設(shè)計總結(jié)、參考資料等,不符合以上要求者,則本次設(shè)計以不及格記。

C語言常見錯誤

書寫標識符時,忽略了大小寫字母的區(qū)別

main()

{

int a=5;

printf("%d",A);

}

編譯程序把a和A認為是兩個不同的變量名,而顯示出錯信息。C認為大寫字母和小寫字母是兩個不同的字符。習慣上,符號常量名用大寫,變量名用小寫表示,以增加可讀性。

2.忽略了變量的類型,進行了不合法的運算。

main()

{

float a,b;

printf("%d",a%b);

}

%是求余運算,得到a/b的整余數(shù)。整型變量a和b可以進行求余運算,而實型變量則不允許進行“求余”運算。

3.將字符常量與字符串常量混淆。

char c;

c="a";

在這里就混淆了字符常量與字符串常量,字符常量是由一對單引號括起來的單個字符,字符串常量是一對雙引號括起來的字符序列。C規(guī)定以“\”作字符串結(jié)束標志,它是由系統(tǒng)自動加上的,所以字符串“a”實際上包含兩個字符:‘a(chǎn)'和‘\',而把它賦給一個字符變量是不行的。

4.忽略了“=”與“==”的區(qū)別。

在許多高級語言中,用“=”符號作為關(guān)系運算符“等于”。如在BASIC程序中可以寫

if (a=3) then …

但C語言中,“=”是賦值運算符,“==”是關(guān)系運算符。如:

if (a==3) a=b;

前者是進行比較,a是否和3相等,后者表示如果a和3相等,把b值賦給a。由于習慣問題,初學者往往會犯這樣的錯誤。

5.忘記加分號。

分號是C語句中不可缺少的一部分,語句末尾必須有分號。

a=1

b=2

編譯時,編譯程序在“a=1”后面沒發(fā)現(xiàn)分號,就把下一行“b=2”也作為上一行語句的一部分,這就會出現(xiàn)語法錯誤。改錯時,有時在被指出有錯的一行中未發(fā)現(xiàn)錯誤,就需要看一下上一行是否漏掉了分號。

{ z=x+y;

t=z/100;

printf("%f",t);

}

對于復合語句來說,最后一個語句中最后的分號不能忽略不寫(這是和PASCAL不同的)。

6.多加分號。

對于一個復合語句,如:

{ z=x+y;

t=z/100;

printf("%f",t);

};

復合語句的花括號后不應(yīng)再加分號,否則將會畫蛇添足。

又如:

if (a%3==0);

I++;

本是如果3整除a,則I加1。但由于if (a%3==0)后多加了分號,則if語句到此結(jié)束,程序?qū)?zhí)行I++語句,不論3是否整除a,I都將自動加1。

再如:

for (I=0;I5;I++);

{scanf("%d",x);

printf("%d",x);}

本意是先后輸入5個數(shù),每輸入一個數(shù)后再將它輸出。由于for()后多加了一個分號,使循環(huán)體變?yōu)榭照Z句,此時只能輸入一個數(shù)并輸出它。

7.輸入變量時忘記加地址運算符“”。

int a,b;

scanf("%d%d",a,b);

這是不合法的。Scanf函數(shù)的作用是:按照a、b在內(nèi)存的地址將a、b的值存進去?!癮”指a在內(nèi)存中的地址。

8.輸入數(shù)據(jù)的方式與要求不符。①scanf("%d%d",a,b);

輸入時,不能用逗號作兩個數(shù)據(jù)間的分隔符,如下面輸入不合法:

3,4

輸入數(shù)據(jù)時,在兩個數(shù)據(jù)之間以一個或多個空格間隔,也可用回車鍵,跳格鍵tab。

②scanf("%d,%d",a,b);

C規(guī)定:如果在“格式控制”字符串中除了格式說明以外還有其它字符,則在輸入數(shù)據(jù)時應(yīng)輸入與這些字符相同的字符。下面輸入是合法的:

3,4

此時不用逗號而用空格或其它字符是不對的。

3 4 3:4

又如:

scanf("a=%d,b=%d",a,b);

輸入應(yīng)如以下形式:

a=3,b=4

9.輸入字符的格式與要求不一致。

在用“%c”格式輸入字符時,“空格字符”和“轉(zhuǎn)義字符”都作為有效字符輸入。

scanf("%c%c%c",c1,c2,c3);

如輸入a b c

字符“a”送給c1,字符“ ”送給c2,字符“b”送給c3,因為%c只要求讀入一個字符,后面不需要用空格作為兩個字符的間隔。

10.輸入輸出的數(shù)據(jù)類型與所用格式說明符不一致。

例如,a已定義為整型,b定義為實型

a=3;b=4.5;

printf("%f%d\n",a,b);

編譯時不給出出錯信息,但運行結(jié)果將與原意不符。這種錯誤尤其需要注意。

11.輸入數(shù)據(jù)時,企圖規(guī)定精度。

scanf("%7.2f",a);

這樣做是不合法的,輸入數(shù)據(jù)時不能規(guī)定精度。

12.switch語句中漏寫break語句。

例如:根據(jù)考試成績的等級打印出百分制數(shù)段。

switch(grade)

{ case 'A':printf("85~100\n");

case 'B':printf("70~84\n");

case 'C':printf("60~69\n");

case 'D':printf("60\n");

default:printf("error\n");

由于漏寫了break語句,case只起標號的作用,而不起判斷作用。因此,當grade值為A時,printf函數(shù)在執(zhí)行完第一個語句后接著執(zhí)行第二、三、四、五個printf函數(shù)語句。正確寫法應(yīng)在每個分支后再加上“break;”。例如

case 'A':printf("85~100\n");break;

13.忽視了while和do-while語句在細節(jié)上的區(qū)別。

(1)main()

{int a=0,I;

scanf("%d",I);

while(I=10)

{a=a+I;

I++;

}

printf("%d",a);

}

(2)main()

{int a=0,I;

scanf("%d",I);

do

{a=a+I;

I++;

}while(I=10);

printf("%d",a);

}

可以看到,當輸入I的值小于或等于10時,二者得到的結(jié)果相同。而當I10時,二者結(jié)果就不同了。因為while循環(huán)是先判斷后執(zhí)行,而do-while循環(huán)是先執(zhí)行后判斷。對于大于10的數(shù)while循環(huán)一次也不執(zhí)行循環(huán)體,而do-while語句則要執(zhí)行一次循環(huán)體。

14.定義數(shù)組時誤用變量。

int n;

scanf("%d",n);

int a[n];

數(shù)組名后用方括號括起來的是常量表達式,可以包括常量和符號常量。即C不允許對數(shù)組的大小作動態(tài)定義。

15.在定義數(shù)組時,將定義的“元素個數(shù)”誤認為是可使的最大下標值。

main()

;

printf("%d",a[10]);

}

C語言規(guī)定:定義時用a[10],表示a數(shù)組有10個元素。其下標值由0開始,所以數(shù)組元素a[10]是不存在的。

16.初始化數(shù)組時,未使用靜態(tài)存儲。

int a[3]=;

這樣初始化數(shù)組是不對的。C語言規(guī)定只有靜態(tài)存儲(static)數(shù)組和外部存儲(exterm)數(shù)組才能初始化。應(yīng)改為:

static int a[3]=;

17.在不應(yīng)加地址運算符的位置加了地址運算符。

scanf("%s",str);

C語言編譯系統(tǒng)對數(shù)組名的處理是:數(shù)組名代表該數(shù)組的起始地址,且scanf函數(shù)中的輸入項是字符數(shù)組名,不必要再加地址符。應(yīng)改為:

scanf("%s",str);

18.同時定義了形參和函數(shù)中的局部變量。

int max(x,y)

int x,y,z;

{z=xy?x:y;

return(z);

}

形參應(yīng)該在函數(shù)體外定義,而局部變量應(yīng)該在函數(shù)體內(nèi)定義。應(yīng)改為:

int max(x,y)

int x,y;

{int z;

z=xy?x:y;

return(z);

}

C語言心得體會

通過這次實訓,增加了我學習軟件技術(shù)的興趣,雖然還不明確軟件技術(shù)包含的具體內(nèi)容,但從C語言這門課程開始,已發(fā)現(xiàn)程序設(shè)計的樂趣,在學習C語言的過程中也學到了許多計算機應(yīng)用基礎(chǔ)知識,對計算機的機體也有了一個大體的了解。

這次實訓是老師給了范例程序,經(jīng)過自己的改寫,實現(xiàn)要求。先做簡單的輸出,一步步的再做其它圖案,在實際操作過程中犯的一些錯誤還會有意外的收獲,感覺實訓很有意思。在具體操作中對這學期所學的C語言的理論知識得到鞏固,達到實訓的基本目的,也發(fā)現(xiàn)自己的不足之出,在以后的上機中應(yīng)更加注意,同時體會到C語言具有的語句簡潔,使用靈活,執(zhí)行效率高等特點。發(fā)現(xiàn)上機實訓的重要作用,特別是對數(shù)組和循環(huán)有了深刻的理解。

通過實際操作,學會 C語言程序編程的基本步驟、基本方法,開發(fā)了自己的邏輯思維能力,培養(yǎng)了分析問題、解決問題的能力。深刻體會到“沒有做不到的,只有想不到的”,“團結(jié)就是力量”,“實踐是檢驗真理的標準”,“不恥下問”……的寓意。

計時在此希望以后應(yīng)多進行這樣的實訓,加長設(shè)間,培養(yǎng)學生獨立思考問題的能力,提高實際操作水平。

八、參考資料 :《C語言程序設(shè)計教程》

另外,團IDC網(wǎng)上有許多產(chǎn)品團購,便宜有口碑

用C語言實現(xiàn)一個函數(shù):輸入一個學生的成績,顯示他的等級,等級分別是:90-100為A等..

#include stdio.h

void fun(int n)

{

switch(n/10)

{

case 1:

case 2:

case 3:

case 4:

case 5:printf("成績不及格\n");break;

case 6:printf("成績?yōu)镈等\n");break;

case 7:printf("成績?yōu)镃等\n");break;

case 8:printf("成績?yōu)锽等\n");break;

case 9:

case 10:printf("成績?yōu)锳等\n");break;

}

}

void main()

{

int n;

scanf("%d",n);

fun(n);

}

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");

}

}

擴展資料:

Switch在一些計算機語言中是保留字,其作用大多情況下是進行判斷選擇。以C語言來說,switch(開關(guān)語句)常和case break default一起使用。

C語言程序語句

Switch用在編程中,如C語言中它經(jīng)常跟Case一起使用,是一個判斷選擇代碼。其功能就是控制流程流轉(zhuǎn)的。

直線翻譯:switch語句,即“切換”語句;case即“情況”。

switch語句的語法如下(switch,case,break和default是關(guān)鍵字):

switch ( 變量表達式 )

{

case 常量1 :語句;break;

case 常量2 :語句;break;

case 常量3 :語句;break;

...

case 常量n:語句;break;

default :語句;break;

}

參考資料來源:百度百科-switch (計算機語言關(guān)鍵字)


當前文章:c語言用函數(shù)判定成績 c語言成績判斷代碼
分享鏈接:http://weahome.cn/article/ddieoes.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部