嫒美直播免费版app下载-嫒美直播永久免费版下载-嫒美直播最新下载安装

當(dāng)前位置:首頁(yè) > 資格考試 > 正文

c語(yǔ)言用while輸入n個(gè)成績(jī),輸出他們的等級(jí)劃分,并統(tǒng)計(jì)人數(shù)

C語(yǔ)音~(yú)~輸入N位學(xué)生的成績(jī),統(tǒng)計(jì)各分?jǐn)?shù)段人數(shù),統(tǒng)計(jì)結(jié)果存入數(shù)組,并輸出

數(shù)組在定義的時(shí)候是要定義大小的。我理解的你的意思是:先輸入要統(tǒng)計(jì)的學(xué)生的數(shù)目N,也既是定義一個(gè)大小為N的數(shù)組,有一個(gè)偷懶的方法就是你預(yù)先定義一個(gè)很大的數(shù)組,遠(yuǎn)超過(guò)你能使用的極限,比如你可能統(tǒng)計(jì)100人的成績(jī),你可以預(yù)先定義一個(gè)大小為1000的數(shù)組來(lái)存儲(chǔ)成績(jī),這樣就可以用for循環(huán)了,只是在輸入成績(jī)的時(shí)候你要有一個(gè)判斷來(lái)告訴程序你的輸入結(jié)束,比如當(dāng)你輸入的成績(jī)超過(guò)100時(shí)判定輸入結(jié)束。但是這樣的定義浪費(fèi)了內(nèi)存。 更好的方法是動(dòng)態(tài)建立一個(gè)數(shù)組,我用C++實(shí)現(xiàn),下面是程序,你看看 #include using namespace std; int main() { int i,

c語(yǔ)言編程,輸入n個(gè)學(xué)生的成績(jī),以輸入-1表示輸入結(jié)束,輸出學(xué)生的人數(shù),總分(不顯示小數(shù))及平均值(...

#include

#include

intmain()

{

inti=0;//學(xué)生人數(shù)計(jì)數(shù)器

floatn;

doublesum=0;

printf("請(qǐng)依次輸入學(xué)生成績(jī)以-1結(jié)束:\n");

while(n!=-1)

{

scanf("%f",&n);

sum=sum+n;

i++;

}//當(dāng)i==-1時(shí)sum-1且i+1所以下邊總分要是i-1,總分為sum+1;時(shí)間不夠沒(méi)改到很好見(jiàn)諒

printf("學(xué)生人數(shù):%d\n",i-1);

printf("總分:%.0f\n",sum+1);//

printf("平均分:%.2f\n",(sum+1)/(i-1));

return0;

}

c語(yǔ)言求助 輸入n個(gè)學(xué)生的考試成績(jī),求出其中最高分、最低分以及超過(guò)平均分的人數(shù)(使用動(dòng)態(tài)分配)

你想輸入多少輸入多少,我就輸入4個(gè)分?jǐn)?shù)測(cè)試。

#include
#include
typedefstructstud
{
intscore;
structstud*next;
}STD;
STD*insertScore(STD*stdHead,STD*stdTail);//錄入成績(jī)
voidprintfSTD(STD*stdHead);//打印鏈表數(shù)據(jù)
int*tjSTD(STD*stdHead);//統(tǒng)計(jì)返回[3]數(shù)組,分別表示最高分最低分超過(guò)平均分人數(shù)
intmain()
{
int*redata=NULL;
STD*stdHead=(STD*)malloc(sizeof(STD));
stdHead->next=NULL;
STD*stdTail=NULL;
do{
stdTail=insertScore(stdHead,stdTail);
}while(stdTail);
printfSTD(stdHead);
redata=tjSTD(stdHead);
printf("最高分:%d,最低分:%d,超過(guò)平均分的人數(shù):%d\n",redata[0],redata[1],redata[2]);
return0;
}
voidprintfSTD(STD*stdHead)//打印數(shù)據(jù)
{
while(stdHead->next!=NULL)
{
printf("%d\n",stdHead->next->score);
stdHead=stdHead->next;
}
}
int*tjSTD(STD*stdHead)//統(tǒng)計(jì)返回[3]數(shù)組,分別表示最高分最低分超過(guò)平均分人數(shù)
{
intmax=-1,min=-1,sum=0,count=0,*reData;
floatave;
STD*stdHeadSave=stdHead;
reData=(int*)malloc(sizeof(int)*3);
while(stdHead->next!=NULL)
{
if(max==-1||maxnext->score)
max=stdHead->next->score;
if(min==-1||min>stdHead->next->score)
min=stdHead->next->score;
sum=sum+stdHead->next->score;
count++;
stdHead=stdHead->next;
}
ave=(float)sum/count;
printf("總?cè)藬?shù):%d,平均分:%f\n",count,ave);
count=0;
stdHead=stdHeadSave;
while(stdHead->next!=NULL)
{
if(stdHead->next->score>ave)
count++;//大于平均分的人數(shù)
stdHead=stdHead->next;
}
reData[0]=max;reData[1]=min;reData[2]=count;
returnreData;
}
STD*insertScore(STD*stdHead,STD*stdTail)//錄入成績(jī)
{
intscore;
printf("輸入成績(jī)(輸入-1結(jié)束錄入):");
scanf("%d",&score);
if(score==-1)
returnNULL;
STD*stdNew=(STD*)malloc(sizeof(STD));
stdNew->score=score;
stdNew->next=NULL;
if(stdHead->next==NULL)
stdHead->next=stdNew;
else
stdTail->next=stdNew;
stdTail=stdNew;
returnstdTail;
}

c語(yǔ)言1)按成績(jī)高低排序,輸出排序后的成績(jī);2)統(tǒng)計(jì)并輸出不及格成績(jī)、人數(shù);3)輸出最高分、最低分?

根據(jù)題目中信息所示:僅輸入一科目成績(jī);人數(shù)不作為參數(shù)輸入;

現(xiàn)在假設(shè):及格線(xiàn)為60分(題目未明確給出)

  • #include

  • //#include< cstring>

  • //#include

  • typedef struct {

  • int grade;

  • }student;

  • //選擇排序

  • void selectSort(student stu[10],int n){

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

  • {int k=i;

  • for(int j=k+1;j<=n;j++){

  • if(stu[j].grade>stu[k].grade)

  • {k=j;

  • }}

  • int temp=stu[i].grade;

  • stu[i].grade=stu[k].grade;

  • stu[k].grade=temp;}}

  • //數(shù)據(jù)輸出

  • void display(student stu[10],int n)

  • {

  • for(int j=0;j

  • printf("%d ",stu[j].grade);

  • printf("\n");}

  • //數(shù)據(jù)最大值與最小值

  • void poll_values(student stu[2],int n){

  • printf("%d %d",stu[0].grade,stu[n].grade);

  • printf("\n");

  • }

  • int main(){

  • student stu[10];

  • student fail[10];

  • student poll[2];

  • int n=0;//總?cè)藬?shù)

  • int m=0;//不及格人數(shù)

  • while(n<10){

  • scanf("%d",&stu[n].grade);

  • if(stu[n].grade<0){

  • break;

  • }

  • ++n;}

  • selectSort(stu,n);

  • //--------------------------------------

  • for(int i=0;i

  • if(stu[i].grade<60){

  • fail[m]=stu[i];

  • ++m;}

  • selectSort(fail,m);

  • display(stu,n);

  • display(fail,m);

  • poll[0]=stu[0];

  • poll[1]=stu[n-1];

  • display(poll,2);

  • //poll_values(stu,n)

  • return 0;

  • }

  • 運(yùn)行結(jié)果如下

輸入一個(gè)正整數(shù)n,再輸入n個(gè)學(xué)生的成績(jī),計(jì)算平均分,并統(tǒng)計(jì)各等級(jí)成績(jī)的個(gè)數(shù)

#include

main()

{

int n,i;

int A=0,B=0,C=0,D=0,E=0;//用來(lái)統(tǒng)計(jì)各階段學(xué)生成績(jī)的人數(shù),初始值都為0;

float score;//定義成績(jī)變量;

float ave=0;//定義平均成績(jī)

float num=0;//定義全部成績(jī)總和

scanf("%d",&n);//從鍵盤(pán)輸入學(xué)生成績(jī)的個(gè)數(shù)

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

scanf("%f",&score);//輸入每個(gè)學(xué)生的成績(jī),共有n個(gè)學(xué)生

num+=score;//計(jì)算總成績(jī)

switch(score)//switch 語(yǔ)句來(lái)計(jì)算各個(gè)分?jǐn)?shù)段的成績(jī)個(gè)數(shù)

{

case score>=90&&score<=100:A++;

case score>=80&&score<=89:B++;

case score>=70&&score<=79:C++;

case score>=60&&score<=69:D++;

case score>=0&&score<=59:E++;

default:break;

}

ave=num/n;//計(jì)算平均成績(jī)

printf("%f",ave);//輸出平均成績(jī)

printf("%d",A);//輸出成績(jī)?cè)?0-100的個(gè)數(shù)

printf("%d",B);//輸出成績(jī)?cè)?0-89的個(gè)數(shù)

printf("%d",C);//輸出成績(jī)?cè)?0-79的個(gè)數(shù)

printf("%d",D);//輸出成績(jī)?cè)?0-69的個(gè)數(shù)

printf("%d",E);//輸出成績(jī)?cè)?-59的個(gè)數(shù)

}

擴(kuò)展資料:

正整數(shù),為大于0的整數(shù),也是正數(shù)與整數(shù)的交集。正整數(shù)又可分為質(zhì)數(shù),1和合數(shù)。正整數(shù)可帶正號(hào)(+),也可以不帶。如:+1、+6、3、5,這些都是正整數(shù)。 0既不是正整數(shù),也不是負(fù)整數(shù)(0是整數(shù))。

以0為界限,將整數(shù)分為三大類(lèi):

1、正整數(shù),即大于0的整數(shù),如,1,2,3…

2、0既不是正整數(shù),也不是負(fù)整數(shù)(0是整數(shù))。

3、負(fù)整數(shù),即小于0的整數(shù),如,-1,-2,-3…

參考資料來(lái)源:百度百科-正整數(shù)

展開(kāi)全文閱讀