c語言寫一個判斷學生最高成績
① 輸入一個學生的三門成績,計算並輸出最高分和最低分的C語言編程怎麼寫
#include<stdio.h>
#include<stdlib.h>
intmin(inta,intb)
{
if(a>b)
returnb;
else
returna;
}
intmax(inta,intb)
{
if(a>b)
returna;
else
returnb;
}
intmain()
{
printf("請輸入學源生的成績:
");
intas,sd,df;
scanf("%d%d%d",&as,&sd,&df);
printf("最高成績是:%d
",max(as,max(sd,df)));
printf("最低成績是:%d",min(as,min(sd,df)));
return0;
}
② c語言編寫一個程序,已知20個學生成績,求最高成績和該生序號
#include<stdio.h>
void main()
{
int ch[10];
int i,max=0,xh;
printf("請輸入10個學生的成績:\n");
for(i=0;i<10;i++)
{
scanf("%d",&ch[i]);
if(ch[i]>max)
{
max=ch[i];
xh=i;
}
}
printf("成績最高為:%d\n",max);
printf("該生回的序號為答:%d\n",xh);
}
③ 用C語言編寫一個程序,輸入N個學生的學號和成績,求平均成績,並輸出其中最高分和最低分學生學號和成績
#include<stdio.h>
#defineN5
structStu{
intid;
doublescore;
};
voidsortScore(Stus[N]){
inti;
intmin=0,max=0;
for(i=1;i<N;i++){
if(s[i].score>s[max].score)max=i;
if(s[i].score<s[min].score)min=i;
}
printf("%d%.2lf ",s[max].id,s[max].score);
printf("%d%.2lf ",s[min].id,s[min].score);
}
intmain(){
Stus[N];
inti;
doubleans=0;
for(i=0;i<N;i++){
scanf("%d%lf",&s[i].id,&s[i].score);
ans+=s[i].score;
}
printf("%.2lf ",ans/N);
sortScore(s);
}
④ 編寫一個程序,計算若干學生的某門功課的平均成績,找出最高分和最低分(c語言作業,不太會,拜託了)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define N 5
void main()
{
float a[N],aver,stdev,max,min;
int i;
for(i=0;i<N;i++)
scanf("%f",&a[i]);
aver=0;max=min=a[i]=0;
for(i=0;i<N;i++)
{aver=aver+a[i];
if(max<a[i]) max=a[i];
if(min>a[i]) min=a[i];}
aver=aver/N;
stdev=0;
for(i=0;i<N;i++)
stdev=stdev+(a[i]-aver)*(a[i]-aver);
stdev=sqrt(stdev/N);
for(i=0;i<N;i++)
printf("%f,%f,%f,%f,%f",aver,stdev,max,min);
}
⑤ 用C語言編寫:有5個學生的成績,找出最高分的那個學生,找出不及格的學生。
#include<stdio.h>
int main()
{
int a[5];
int i, index = 0;
printf("請輸入五個學生回的成績, 用空格隔開:\n");
for(i = 0; i < 5; ++i)
{
答scanf("%d", &a[i]);
}
index = 0;
for (i = 0; i < 5; ++i)
{
if (a[index] < a[i])
{
index = i;
}
}
printf("最高分:%d\n", a[index]);
printf("不及格分數:\n");
for(i = 0; i <5; ++i)
{
if (a[i] < 60)
{
printf("%d\n", a[i]);
}
}
}
// 樓主在考試?
⑥ c語言:編寫程序輸入 10 個學生的成績,計算並輸出最高成績和平均成績,然後統計低於平均成績的人數
#include<stdio.h>
int main()
{
int i;
float a[10],min,max,avg;//max表示最高分,min表示最低分,avg表示平均分
printf("請輸入10位學生的分數 ");
printf("******************************** ");
for(i=0;i<=9;i++)
{
printf("請輸入一位學生的分數:");
scanf("%f",&a<i>);
}
max=min=avg=a[0];
for(i=1;i<=9;i++)
{
if(min>a<i>)
{min=a<i>;}
if(max<a<i>)
{max=a<i>;}
avg=avg+a<i>;
}
avg=avg/10;
printf("max=%f ",max);
printf("min=%f ",min);
printf("max=%f ",avg);
printf("******************************** ");
}
(6)c語言寫一個判斷學生最高成績擴展閱讀:
include用法:
#include命令預處理命令的一種,預處理命令可以將別的源代碼內容插入到所指定的位置;可以標識出只有在特定條件下才會被編譯的某一段程序代碼;可以定義類似標識符功能的宏,在編譯時,預處理器會用別的文本取代該宏。
插入頭文件的內容
#include命令告訴預處理器將指定頭文件的內容插入到預處理器命令的相應位置。有兩種方式可以指定插入頭文件:
1、#include<文件名>
2、#include"文件名"
⑦ 有一個數組,內放 10個學生成績,用C語言寫一個函數,求出平均分、 最高分、最低分。
編譯的預處理命令沒有,應該寫上#include<stdio.h>,還有改為int main() 末尾加上return 0;
就可以運行了,運行檢驗程序沒有問題
這是修改之後的結果
#include<stdio.h>
float max=0, min=0;
float average(float array[],int n);
int main()
{
float ave,score[10]; int i;
for(i=0;i<10;i++)
scanf("%f",&score[i]);
ave = average(score,10);
printf("max=%6.2f\nmin=%6.2f\n",max,min);
printf("average=%6.2f\n",ave);
return 0;
}
float average(float array[],int n)
{
int i; float aver,sum=array[0];
max=min=array[0];
for(i=1;i<n;i++)
{
if (array[i] > max) max = array[i];
if (array[i] < min) min = array[i];
sum = sum + array[i];
}
aver = sum/n;
return aver;
}
⑧ c語言寫程序。打開一個包含學生名字和成績的文件,要求找出成績最高的學生的名字輸出。
只是找出最高學生的名字,連排序都不用
假定文件數據是這樣的:
----------------------
..............
王尼瑪 99
曹尼瑪 100
王尼美 89
................
----------------------
#include<stdio.h>
#include<string.h>
intmain()
{
FILE*file=fopen("FILEPATH","r");
if(file==NULL)
{
printf("文件打開失敗");
return-1;
}
intgrades=0,num;
charname[10],getname[10];
while(fscanf(file,"%s%d",getname,&num)!=EOF)
{
if(num>grades)
{
grades=num;
strcpy(name,getname);
}
}
printf("第一名:%s",name);
return0;
}
應該就是這樣了吧,我也沒編譯試過
⑨ 用c語言編寫 一數組存放有8個學生的成績,寫一個函數求出平均分、最高分和最低分
#include<stdio.h>
int main()
{
float score[8]={68,72,79,86,84,93,99,100};
int i,j;
float t,sum=0;
for(i=0;i<7;i++)
for(j=i+1;j<8;j++)
if(score[i]<score[j])
{
t=score[i];
score[i]=score[j];
score[j]=t;
}
for(i=0;i<8;i++)
sum+=score[i];
printf("the max score:%d\n",score[0]);
printf("the min score:%d\n",score[7]);
printf("the average score:%f\n",sum/8.0);
getch();
return 0;
}
⑩ C語言編寫一個成績用來輸入學生學號姓名成績,並統計學生成績的最大值,最小值,平均值,方差,判斷學生
1、更多交流可參考我空間主頁有關文章。
2、#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
/*定義結構體*/
struct student
{
int num;
float score;
struct student *next;
};
/*創建一個只有頭結點的空鏈表*/
struct student *create_head()
{
struct student *head;
head=(struct student*)malloc(sizeof (struct student) );
if(head==NULL) //小心別漏這個
{
printf("申請頭結點失敗!\n");
return NULL;
}
head->next=NULL;
return head;
}
/*將s指向的結點插入鏈表,使鏈表保持升序,並返回頭結點*/
struct student *insert(struct student *head,struct student *s)
{
struct student *p=head;
while(p->next!=NULL&&s->score>p->next->score)//特別注意&&左右不能寫反,若s最大,最後p->next=NULL,p->next->score運行出錯
p=p->next;
if(p->next==NULL) //s->score最大的情況 //其實兩種情況可以並在一塊寫
{
p->next=s; //連接結點
s->next=NULL; //p->next就等於NULL
}
else
{
p->next=s; //連接結點
s->next=p->next;
}
return head ;
}
/*查找符合條件的結點,並返回指向該結點的指針*/
struct student *search(struct student *head)
{
struct student *p=head->next;
int num;
printf("請輸入要查找學生的學號:\n");
scanf("%d",&num);
while(p!=NULL&&p->num!=num) //特別注意兩條件不能寫反,若寫反最後p指向NULL時p->num找不到 運行出錯
p=p->next;
if(p==NULL) //特別注意兩個if不能調換,若調換最後p指向NULL時p->num運行出錯
{
printf("找不到符合條件的結點!!!");
return NULL; //查找不到返回空指針
}
if(p->num==num)
{
printf("找到符合條件的結點\n該結點為%d\t%f",p->num,p->score);
return p; //返回查找到的指針
}
}
/*輸出鏈表各結點的值,也稱對鏈表的遍歷*/
void print(struct student *head)
{
struct student *p;
printf(" 鏈表如下: \n");
p=head->next;
while(p!=NULL)
{
printf("%d\t%.1f\n",p->num,p->score);
p=p->next;
}
}
/*釋放鏈表*/
void free_list(struct student *head)
{
struct student *p=head ;
printf("釋放鏈表:\n");
while(p!=NULL)
{
head=head->next;
free(p);
p=head;
}
printf("釋放鏈表成功!\n");
}
/*刪除鏈表中值為num的結點,並返回鏈表的首指針*/
struct student *delete_note(struct student *head,int num_x)
{
struct student *p1=head->next , *p2=head ;
while(p1!=NULL&&p1->num!=num_x) //特別注意&&左右條件不能調換,若調換如果p1指向NULL時p1->num運行出錯
{
p2=p1;
p1=p1->next;
}
if(p1==NULL) //特別注意兩個if不能調換,若調換如果p1指向NULL時,p1->num運行出錯
printf("找不到符合刪除要求的結點!!!\n");
if(p1->num==num_x)
{
p2->next=p1->next;
free(p1);
printf("結點刪除成功!\n");
}
return head;
}
/*完整的有頭結點鏈表操作程序*/
void main()
{
struct student *p , *head ;
char c;
int num ;
float score ;
printf("有頭結點鏈表操作程序:\n");
head=create_head();
while(1)
{
printf("I:插入結點(自動升序) P:輸出鏈表 S:查找結點 D:刪除結點 E:釋放鏈表並退出程序! ");
c=getch();
switch(c)
{
case'I':
printf("請分別輸入要插入學生的學號和分數:\n");
scanf("%d%f",&num,&score);
p=(struct student*)malloc( sizeof(struct student) );
if(p==NULL)
{
printf("申請該結點失敗!!!\n");
exit (0) ;
}
p->num=num; p->score=score; //給p賦值
insert(head,p);
printf("插入成功!\n");
break;
case'P':
print(head);
break;
case'S':
search(head);
break;
case'D':
printf("請輸入要刪除的學生的學號:\n");
scanf("%d",&num);
delete_note(head,num);
break;
case'E':
free_list(head);
exit (0);
}
}
}