導航:首頁 > 源碼編譯 > 用編譯器寫出學生的最高成績排行

用編譯器寫出學生的最高成績排行

發布時間:2022-07-17 02:22:06

Ⅰ c語言 從鍵盤輸入10位同學的數學成績,保存在數組中,輸出最高分、最低分、平均分

#include "stdio.h" // 這里問題不大,不過最好改為 #include<stdio.h>
main() //最好改為 void main() 現在是C99標准,請用 int main(void)
{
float a[10],Min,Max,j,Sum;
int i;
printf("請輸入10位同學的數學成績");
for(i=0;i<10;i++)
scanf("%f",&a[i]);
Sum=0;Max=0;Min=100; // Min=100過於有創意,請改為 Min=a[0] 最好Max=a[0]
for(i=0;i<10;i++)
{
Sum=Sum+a[i];
if (a[i]>Max)
Max=a[i];
if (a[i]<Min)
Min=a[i];
}
j=Sum/10;
printf("10位同學數學成績最高的為%f,最低的為%f,平均值為%f",Max,Min,j);
}

Ⅱ 用c語言設計一個程序統計一個班的學生成績

改好了,問題不大,我都寫在注釋里了:

#include<stdio.h>
#include<math.h>
#define N 35
#define COURSE 4

struct student
{
char num[10];/*如果把num當作字元串的話,不能用int,而是char數組。不然就用int num;*/
float score[4];
float sum;
float aver;
}
stu[N];

void main()
{
void Input(struct student stu[]);
void count(struct student stu[]);
void sort(struct student stu[]);
void find(struct student stu[]);
sqrt(1.0);/*不知你用什麼編譯器,如果TC的話,有個BUG。就是結構體里有float型的話,要加這句,不然會報錯*/
Input(stu);
count(stu);
find(stu);
/*為什麼你的程序里沒有執行著幾個函數咧?*/

}
void Input(struct student stu[])
{
int i,j;
printf("Enter No.and score as :score1 score2 score3 score4\n");
for (i=0;i<N;i++)
{
scanf("%s",stu[i].num);/*用%s輸入字元串*/
for (j=0;j<COURSE;j++)
{
scanf("%f",&stu[i].score[j]);
}
}

}

void count(struct student stu[])
{
float sum,aver;
int i,j;
for(i=0;i<N;i++)
{
sum=0;
for(j=0;j<5;j++)
sum+=stu[i].score[j];
aver=sum/4;
stu[i].sum=sum;
stu[i].aver=aver;
}

}

void sort(struct student stu[])
{
int i,j,k;
struct student temp;
for(i=0;i<N;i++)
{
k=i;
for(j=i+1;j<N;j++)
if(stu[k].sum<stu[j].sum)k=j;
if(k!=i)
{
temp=stu[i];
stu[i]=stu[k];
stu[k]=temp;
}
}
printf("number score1 score2 score3 score4 sum average \n");
for(i=0;i<N;i++)
printf("%-8s%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f\n",stu[i].num,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].sum,stu[i].aver);
/*輸出學號也用%s*/
}

void find(struct student stu[])
{
int flag=0;
int i,j;
sort(stu) /*;//stu[];)*/

printf("the student of one score>=90 and 前五名:\n");
/*這兩句調換一下位置,不然輸出不太好*/

for(i=0;i<5;i++)
{
int sum=0;
for(j=0;j<4;j++)
if(stu[i].score[j]>=90 )sum++;
if(sum)
{
flag=1;
printf("%-8s%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f\n",stu[i].num,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].sum,stu[i].aver);
}
}
if(flag==0)
printf(" not exist!\n");
/*這個判斷放在循環體之外,不然會輸出好多" not exist!"*/

}

另外,注意:
1.個班的學生成績最多35人。你的咋是固定35人捏?
2.第四點要求:根據用戶要求輸入課程號顯示該門課程成績在90以上且總分在前五的學生的 學號和各科成績,平均分和總分

你似乎沒有看清題意吧?是要用戶輸入課程號耶。

這些你自己應該知道怎麼做吧?

Ⅲ C語言,學生成績排序,用VC能輸出正確的結果,但學校的編譯器是g++,總提示無效內存引用,求助!!!!

for(a[i][c]<a[1][i]) c = i;
//首先說說 a[2][20];
1.scanf("%d",&n);//n最好先初始化一下,輸入無效值「s」,n的值亂七八糟的。
2.若n的值超過20,數組是不是越界了,可以這樣 n = n>20?20:n;
//其次說說if(a[i][c]<a[1][i]) c = i;
若a[1][0] < a[1][1] c = 1;
若a[1][0] < a[1][2] c = 2;
..........................;
若a[1][0] < a[1][arraysize] c = arraysize;
for(a[i][c]<a[1][i]) c = i;//不明白要做什麼。
//最後可以定義一個結構體。
struct _student
{
int stu_no;
int stu_grade;
};
#define ARRAY_SIZE 20;
_student stu[ARRAY_SIZE];
信息:給每個結構體賦給學生成績和序號,
排序:小量數據可以用冒泡排序法排序,
輸出: 把結構體數據輸出就完成這個功能了。



vc6.0的語法沒有gcc嚴謹


建議同學遵守下變數的命名規則吧。

個人覺得,一個二維數組信息放序號跟成績,這個真是很奇怪的事情。

代碼我沒有怎麼看,看不懂莫怪。


上面是見到一些錯誤和給出的建議。希望對你有幫助。

Ⅳ c語言編程問題,求高手解答,還有幾天就要交了,謝謝!題目是:對學生四門成績分類排名(含總分)演算法的設

以前寫過一個類似的,今天修改了一下給你參考參考,應該能滿足你的要求吧,支持一次運行重復選擇排序關鍵字、重寫數據、導出排序結果到文本文件等功能,不過演算法可能不是很好,可以自己再修改修改,希望對你能有些幫助,另外請使用win-tc或者turboc等純c語言編輯器編譯,c++的編譯器會不支持裡面的一些c語言的函數,代碼如下

/*請使用win-tc或turboc等純c語言環境編譯*/

/*devc++或vc++不能識別程序中所用的某些c語言的函數*/

#include<stdio.h>

#include<conio.h>

#include<time.h>

main()

{

inti,j,key,n,tem0,tem1,a[100][2];

charb[5][10]={"chinese","English","chemistry","physics","total"};/*名稱數組*/

structstu/*定義結構體,包含學生姓名!成績等星信息*/

{

charname[20];/*姓名*/

intcourse[5];/*儲存成績*/

};

structstunum[100];/*預先定義100人,看具體情況*/

time_ttimep;/*此處是為了獲取當前時間*/

structtm*p;

textbackground(2);/*修改背景色*/

textcolor(15);/*修改文本顏色,使界面美觀*/

Y:/*標記跳轉位置*/

clrscr();/*清屏,使顏色設置生效*/

printf("Howmanystudents?");

scanf("%d",&n);/*n來記錄總共的記錄條數*/

printf("----------------------------------------------------------------------");/*列印一條分割線,使信息層次清晰*/

printf(" Inputtheinfomation ");

printf("example:Jerry85789281 ");

printf("----------------------------------------------------------------------");

printf("\n");/*此處為輸入樣例,姓名+四門成績,中間空格隔開*/

for(i=0;i<n;i++)

{

scanf("%s%d%d%d%d",&num[i].name,&num[i].course[0],&num[i].course[1],&num[i].course[2],&num[i].course[3]);/*存儲數據*/

num[i].course[4]=num[i].course[0]+num[i].course[1]+num[i].course[2]+num[i].course[3];

}

printf("---------------------------------------------------------------------- ");/*標記跳轉位置*/

X:

printf("Whatdoyouwanttosortby? 1:chinese2:English3:chemistry4:physics5:total");/*選擇排序關鍵字*/

scanf("%d",&key);

for(i=0;i<n;i++)

{

a[i][0]=num[i].course[key-1];/*引入中間二維數組a來實現排序,a[i][0]臨時存儲要排序的成績,a[i][1]記錄編號與之對應*/

a[i][1]=i;

}

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

{

for(j=n-1;j>=i;j--)

{

if(a[j][0]>a[j-1][0])/*最基本的冒泡法*/

{

tem0=a[j][0];tem1=a[j][1];

a[j][0]=a[j-1][0];a[j][1]=a[j-1][1];

a[j-1][0]=tem0;a[j-1][1]=tem1;

}

}

}

printf("----------------------------------------------------------------------");

printf(" Youchosetosortby%s: ",b[key-1]);/*列印結果*/

printf("----------------------------------------------------------------------");

printf("\n");

for(i=0;i<n;i++)

{

printf("%3d%5s%3d%3d%3d%3d%4d ",i+1,num[a[i][1]].name,num[a[i][1]].course[0],num[a[i][1]].course[1],num[a[i][1]].course[2],num[a[i][1]].course[3],num[a[i][1]].course[4]);

}

printf("---------------------------------------------------------------------- ");

Z:/*標記跳轉位置*//*經過冒泡之後a[i][1]存入的就是排序後的順序了*/

printf("Whatdowant'ttodonow? 1.Continue2.Clearandcontinue3.Export4.New5.Quit");

scanf("%d",&tem0);/*選擇接下來要做什麼1:繼續選擇其他關鍵字排序2:清屏之後繼續排序3:導出當前數據到文本文件4:覆蓋當前數據,輸入一組新的數據5:退出*/

printf("---------------------------------------------------------------------- ");

if(tem0==1)gotoX;/*跳轉到標記位置繼續運行程序*/

if(tem0==2)

{clrscr();gotoX;}/*清屏之後跳轉到標記位置繼續運行程序*/

if(tem0==3)

{

FILE*fp=fopen("result.txt","a");/*以追加方式打開result.txt文件,如果不存在則創建*/

if(!fp)

{

printf(" createandopenfilefailed ");

getch();

return;

}

time(&timep);

p=localtime(&timep);

fprintf(fp,"---------------------------------------------------------------------- ");

fprintf(fp,"%d-%02d-%02d",(1900+p->tm_year),(1+p->tm_mon),p->tm_mday);/*向文件內寫入當前系統時間,格式如同2011-01-0918:28:03*/

fprintf(fp,"%02d:%02d:%02d",p->tm_hour,p->tm_min,p->tm_sec);

fprintf(fp,"sortby%s: ",b[key-1]);/*向文件內寫入當前排序數據*/

fprintf(fp," ");

for(i=0;i<n;i++)

{

fprintf(fp,"%3d%5s%3d%3d%3d%3d%4d ",i+1,num[a[i][1]].name,num[a[i][1]].course[0],num[a[i][1]].course[1],num[a[i][1]].course[2],num[a[i][1]].course[3],num[a[i][1]].course[4]);

}

fprintf(fp,"---------------------------------------------------------------------- ");

fprintf(fp," ");

fclose(fp);

printf(".TXTSuccessfully! ");

printf("---------------------------------------------------------------------- ");

gotoZ;

}

if(tem0==4)

{clrscr();gotoY;}/*清屏之後跳轉到標記位置繼續運行程序*/

}

Ⅳ c++問題:我們考試要用c++編譯器做一個學生成績管理系統 有學生學號 姓名 年齡 還有數學英語計

#include<stdio.h>
struct student
{
int stu_No;
char stu_Name[20];
int Math_score;
int English_score;
int Chinese_score;
float Average_score;
};
main()
{
int i,j,n=5,Math=0,English=0,Chinese=0;
double p,m,k,l,e,Math_average,Chinese_average,English_average;
struct student stu[5],t;
printf("Please Input Studen Information\n");
for(i=0;i<n;i++)
{
scanf("%d %s %d %d %d",&stu[i].stu_No,stu[i].stu_Name,&stu[i].Math_score,&stu[i].English_score,&stu[i].Chinese_score);
}
for(i=0;i<n;i++)
{
stu[i].Average_score=(stu[i].Math_score+stu[i].English_score+stu[i].Chinese_score)/3.0;
}
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
if(stu[j].Average_score<stu[j+1].Average_score)
{
t=stu[j];
stu[j]=stu[j+1];
stu[j+1]=t;
}
for(i=0;i<n;i++)
printf("%d %s %d %d %d\n",stu[i].stu_No,stu[i].stu_Name,stu[i].Math_score,stu[i].English_score,stu[i].Chinese_score);
for(i=0;i<n;i++)
{ Math=Math+stu[i].Math_score;}
Math_average=Math/n;
printf("數學平均成績=%lf\n",Math_average);
for(i=0;i<n;i++)
{ English=English+stu[i].English_score;}
English_average=English/n;
printf("英語平均成績=%lf\n",English_average);
for(i=0;i<n;i++)
{ Chinese=Chinese+stu[i].Chinese_score;}
Chinese_average=Chinese/n;
printf("語文平均成績=%lf\n",Chinese_average);
for(i=0,m=0.0,e=0.0,p=0.0,k=0.0,l=0.0;i<n;i++)
{
if(stu[i].Math_score<60) m++;
else if((stu[i].Math_score>=60)&&(stu[i].Math_score<70)) e++;
else if((stu[i].Math_score>=70)&&(stu[i].Math_score<80)) p++;
else if((stu[i].Math_score>=80)&&(stu[i].Math_score<90)) k++;
else l++;
}
printf("數學不及格不及格人數 %lf 比例 %lf\n",m,m/n);
printf("數學及格人數 %lf 比例 %lf\n",e,e/n);
printf("數學中等人數 %lf 比例 %lf\n",p,p/n);
printf("數學良好人數 %lf 比例 %lf\n",k,k/n);
printf("數學優秀人數 %lf 比例 %lf\n",l,l/n);
for(i=0,m=0.0,e=0.0,p=0.0,k=0.0,l=0.0;i<n;i++)
{
if(stu[i].English_score<60) m++;
else if((stu[i].English_score>=60)&&(stu[i].English_score<70)) e++;
else if((stu[i].English_score>=70)&&(stu[i].English_score<80)) p++;
else if((stu[i].English_score>=80)&&(stu[i].English_score<90)) k++;
else l++;
}
printf("英語不及格不及格人數 %lf 比例 %lf\n",m,m/n);
printf("英語及格人數 %lf 比例 %lf\n",e,e/n);
printf("英語中等人數 %lf 比例 %lf\n",p,p/n);
printf("英語良好人數 %lf 比例 %lf\n",k,k/n);
printf("英語優秀人數 %lf 比例 %lf\n",l,l/n);
for(i=0,m=0.0,e=0.0,p=0.0,k=0.0,l=0.0;i<n;i++)
{
if(stu[i].Chinese_score<60) m++;
else if((stu[i].Chinese_score>=60)&&(stu[i].Chinese_score<70)) e++;
else if((stu[i].Chinese_score>=70)&&(stu[i].Chinese_score<80)) p++;
else if((stu[i].Chinese_score>=80)&&(stu[i].Chinese_score<90)) k++;
else l++;
}
printf("語文不及格不及格人數 %lf 比例 %lf\n",m,m/n);
printf("語文及格人數 %lf 比例 %lf\n",e,e/n);
printf("語文中等人數 %lf 比例 %lf\n",p,p/n);
printf("語文良好人數 %lf 比例 %lf\n",k,k/n);
printf("語文優秀人數 %lf 比例 %lf\n",l,l/n);
}
最低分和最高自己做下把

Ⅵ c語言求解:有三個學生每個學生有四門課,從鍵盤輸入學生的成績統計每門課的最高分並輸出最高分及學生號

#include "stdio.h"

struct student{
char Student_id[16];
subjects[4];
} ;

void main()
{
struct student students[3];
int i,j,max;
printf("請依次輸入學號,及3門科目的成績!\n);
for(i=0;i<3;i++)
{
printf("第%d個學生,學號:\n",i);
scanf("%s",students[i].student_id);
printf("輸入成績成績\n:);
for(j=0;j<4;j++)
{
printf("第%d門課的成績:",j);
scanf("%d",&students[i].subjects[j]);
printf("\n");
}
}
printf("現在統計每門課最高分!\n");
for(i=0;i<4;i++)
{
max = students[0].subjects[0];
for(j=1;j<3;j++)
{
if ( students[j].subjects[i]>max)
{
max = students[j].subjects[i]
break;
}
}
printf("第%d門課最高分的學生號為:%s\n",&i,students[j].student_id);
}

//隨手寫的可能有錯誤 ,可以去編譯器上調試一下!
}

Ⅶ C++利用if和switch編寫輸出成績等級的程序

#include<iostream>

usingnamespacestd;
voidmain()
{
ints;
cout<<"請輸入考試成績"<<endl;
cin>>s;
switch(s/10)
{
case10:
case9:cout<<"成績為等級A"<<endl;break;
case8:cout<<"成績為等級B"<<endl;break;
case7:cout<<"成績為等級C"<<endl;break;
case6:cout<<"成績為等級D"<<endl;break;
case5:
case4:
case3:
case2:
case1:cout<<"成績為等級E"<<endl;break;
default:cout<<"輸入有誤"<<endl;break;
}
}

閱讀全文

與用編譯器寫出學生的最高成績排行相關的資料

熱點內容
噴油螺桿製冷壓縮機 瀏覽:577
python員工信息登記表 瀏覽:375
高中美術pdf 瀏覽:158
java實現排列 瀏覽:511
javavector的用法 瀏覽:979
osi實現加密的三層 瀏覽:230
大眾寶來原廠中控如何安裝app 瀏覽:911
linux內核根文件系統 瀏覽:240
3d的命令面板不見了 瀏覽:523
武漢理工大學伺服器ip地址 瀏覽:146
亞馬遜雲伺服器登錄 瀏覽:521
安卓手機如何進行文件處理 瀏覽:70
mysql執行系統命令 瀏覽:928
php支持curlhttps 瀏覽:142
新預演算法責任 瀏覽:443
伺服器如何處理5萬人同時在線 瀏覽:249
哈夫曼編碼數據壓縮 瀏覽:424
鎖定伺服器是什麼意思 瀏覽:383
場景檢測演算法 瀏覽:616
解壓手機軟體觸屏 瀏覽:348