當前位置:首頁 » 編程語言 » 隨機產生20個學生的成績c語言
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

隨機產生20個學生的成績c語言

發布時間: 2022-05-01 19:02:48

c語言編程 輸入20個學生的成績,求出其中大於平均成績學生的人數,並對20名學生成績按從高到低進行排序

#include"stdio.h"
main()
{
int i,j,sum=0,temp=0,a[20];
for(i=0;i<20;i++)
{
printf("please input a[%d]",i);
scanf("%d",&a[i]);
sum+=a[i];
}
for(i=0;i<20;i++)
if(a[i]>sum/20.0)
temp++;
printf("there are %d students' store above age %f\n",temp,sum/20.0);

for(i=0;i<19;i++)
for(j=0;j<19-i;j++)
if(a[j]<a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
for(i=0;i<20;i++)
printf("%d\n",a[i]);
}

❷ 幫忙編寫個C代碼

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char* argv[])
{
int i = 0;
int j = 0;
int array[20] = {0};
/*生成隨機數30-100*/
for(i = 0; i < 20; i ++)
{
array[i] = 30 + (int)(71.0 * (rand() / (RAND_MAX + 1.0)));
}

/*按3個列寬輸出*/
for(i = 0; i < 20; i++)
{
printf("%3d", array[i]);
if((i+1)%5 == 0)
printf("\n");
}

int max_score = array[0];
int min_score = array[0];
int max_pos = 0;
int min_pos = 0;
int total = 0;
for(i = 0; i < 20; i++)
{
if(array[i] > max_score)
{
max_score = array[i];
max_pos = i;
}

if(array[i] < min_score)
{
min_score = array[i];
min_pos = i;
}
total += array[i];
}

float average = total/(float)20;
printf("最高分和位置: %d, %d\n", max_score, max_pos);
printf("最低分和位置: %d, %d\n", min_score, min_pos);
printf("average socre: %f\n", average);

/*冒泡排序*/
for(i = 0; i < 19; i++)
{
for(j = i+1; j < 20; j++)
{
if(array[i] < array[j])
{
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}

for(i = 0; i < 20; i++)
{
printf("%d\t", array[i]);
}
printf("\n");

return 0;
}

❸ C語言:輸入20名人4門功課成績存入二維數組,用自定義函數按以下要求完成輸入、處理、輸出等操作。咋編

代碼文本:

#include "stdio.h"

#include <stdlib.h>

#include "time.h"

#define N 20

#define M 4

void Input(float (*p)[M+1]){//輸入函數

char i,j,t;

srand((unsigned)time(NULL));

for(i=0;i<N;i++)//模擬得分

for(p[i][M]=j=0;j<M;j++)

if((t=rand()%100)<10)

p[i][j]=(float)(rand()%101);

else if(t<30)

p[i][j]=(float)(rand()%81)+20;

else

p[i][j]=(float)(rand()%41)+60;

}

void Process(float (*p)[M+1]){//成績處理函數

char i,j;

for(j=0;j<=M;p[N][j++]=0);//課程和總平均值清0

for(i=0;i<N;i++){

for(p[i][M]=j=0;j<M;j++){

p[i][M]+=p[i][j];//累加學生課程

p[N][j]+=p[i][j];//單項課程累加

}

p[N][M]+=p[i][M];//全部課程累加

p[i][M]/=(M+0.0);//學生平均值

}

for(i=0;i<M;p[N][i++]/=(N+0.0));//功課平均值

p[N][M]/=(float)(N*M);//總平均值

}

void Print(float (*a)[M+1]){//輸出函數

char i,j;

printf(" NAME SCO1 SCO2 SCO3 SCO4 PAVE ");

puts("==============================================");

for(i=0;i<N;i++){

printf(" ST%02d ",i+1);//輸出學生名

for(j=0;j<M;printf("%.0f ",a[i][j++]));//功課分數

printf("%.2f ",a[i][M]);//輸出學生平均分數

}

puts("----------------------------------------------");

printf(" TAVE ");

for(i=0;i<=M;printf("%.2f ",a[N][i++]));//功課平均分

putchar(' ');

}

int main(int argc,char *argv[]){

float s[N+1][M+1];

Input(s);

Process(s);

Print(s);

return 0;

}

❹ C語言編程,急求

/*不是吧,我再TC上怎麼運行成功了呢?如果那樣的話我也沒辦法了,不好意思*/
#include "stdio.h"
#include "time.h"
main()
{int i,j,t,a[20];
srand(time(NULL));/*以時間為種子*/
for(i=0;i<20;i++)
a[i]=rand()%101;/*產生0-100的20個隨機數*/
for(i=0;i<20;i++)
printf("%d ",a[i]);/*輸出*/
printf("\n");
for(i=0;i<20;i++)/*排序開史點*/
for(j=i;j<20;j++)
if(a[i]>a[j])
{t=a[i];a[i]=a[j];a[j]=t;}/*排序結束點*/
for(i=0;i<20;i++)/*再輸出*/
printf("%d ",a[i]);
}

❺ c語言編程 輸入20個學生成績和學號,然後輸入學號,查出他的成績並列印.

#include"stdio.h"
main()
{int i,a[2][20],j,c;
int (*p)[20];
p=a;
printf("\nEnter No students");
for(j=0;j<20;j++)
scanf("%d",*p+j);
printf("\nEnter the scores of pupils");
for(j=0;j<20;j++)
scanf("%d",*(p+1)+j);
printf("\nEnter the school to find its");
scanf("%d",&c);
i=0;
while(i++<20)
{
if(*(*p+i)==c)
printf("=%d",*(*(p+1)+i));
}
}
呵呵 剛學完指針 多維 都有點混了。
我改了 測試了 可以通過
你自己改改,讓輸出更好看點。

❻ c語言編寫一個程序,已知20個學生成績,求最高成績和該生序號

#include<stdio.h>

intmain(void)
{

inta[20];
inti;
intmax=0;
for(i=0;i<20;i++)//輸入20個成績
scanf("%d",&a[i]);
for(i=0;i<20;i++)
if(a[max]<a[i])
max=i;
printf("最高成績是%d,序號是%d ",a[max],max);



}

❼ C語言:生成20個學號姓名和5門成績的結構體數組,不動其數據,用指針數組按平均成績由高至低排序,咋寫

(感覺略有難度) 題目沒有要求計算和輸出平均值,所以排序可以不求平均值而按五門總分進行,效果與求出平均分是一樣的——

代碼文本:

#include "stdio.h"

#include <stdlib.h>

#include <string.h>

#include "time.h"

#define N 20

struct stu{

int s[5];

char SN[9],NAME[6];

};

int main(int argc,char *argv[]){

int i,j,k;

struct stu A[N],*p[N],*q;

srand((unsigned)time(NULL));

for(i=0;i<N;i++){//隨機生成學生信息

do{//隨機生成8位學號且不重復

itoa(10000+rand()%10000,A[i].SN,10);

strcpy(A[i].SN,A[i].SN+1);

itoa(1000+rand()%1000,A[i].SN+4,10);

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

if(strcmp(A[i].SN,A[j].SN)==0)

break;

}while(j<i);

A[i].NAME[0]='S',A[i].NAME[1]='T',A[i].NAME[2]='U';

A[i].NAME[3]=(i+1)/10+'0',A[i].NAME[4]=(i+1)%10+'0';

A[i].NAME[5]='';

for(j=0;j<5;A[i].s[j++]=rand()%101);//隨機生成成績

}

for(i=0;i<N;p[i]=A+i++);//為指針數組賦值

for(i=0;i<N;i++){

for(k=i,j=k+1;j<N;j++)

if(p[k]->s[0]+p[k]->s[1]+p[k]->s[2]+p[k]->s[3]+p[k]->s[4]<

p[j]->s[0]+p[j]->s[1]+p[j]->s[2]+p[j]->s[3]+p[j]->s[4])

k=j;

if(i-k)

q=p[i],p[i]=p[k],p[k]=q;//把平均成績高的向前交換

printf("%s %s ",p[i]->SN,p[i]->NAME);//輸出學號姓名

for(j=0;j<5;printf("%4d",p[i]->s[j++]));//輸出原始成績

putchar(' ');

}

return 0;

}

❽ c語言高手幫忙

#include "stdafx.h"
#include"stdio.h"
#include"time.h"
#include"stdlib.h"

void main()
{
int a[50],i,j,max,min,sum=0,temp,some;
float avg;
srand((unsigned)time(NULL));
for(i=1;i<=20;i++)
{
a[i]=rand()%71+30;
printf("%d ",a[i]);
if(i%4==0)
printf("\n");
}
max=a[0];
min=a[1];
for(i=1;i<=20;i++)
{
if(max<a[i])
max=a[i];
if(min>a[i])
min=a[i];
sum+=a[i];
avg=(float)sum/20;

}
printf("最大值為:%d,最小值為:%d,平均分是:%.2f\n",max,min,avg);
for(i=1;i<=20;i++)
{
for(j=i+1;j<=20;j++)
{
if(a[i]<a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
for(i=1;i<=20;i++)
{
printf("%d ",a[i]);
}

❾ 編程 隨機生成20個學生的成績(60分—100分)(用數組存放數據) 輸出最高分和最低分,平均分 利用數組

#include<stdio.h>
#include<stdlib.h>

void main()
{
int a[20];
int high; //最高分
int low; //最低分
int ave; //平均分
int i;

//隨機產生20個學生的成績
for(i = 0; i < 20; i++)
{
a[i] = rand() % 100;
}

//顯示20個學生的成績
for(i = 0; i < 20; i++)
{
printf("%d ",a[i]);
}
printf("\n");

//統計最高分,最低分,平均分
high = -1;
low = 101;
ave = 0;
for(i = 0; i < 20; i ++)
{
ave += a[i];
if(a[i] > high)
high = a[i];
if(a[i] < low)
low = a[i];
}
ave /= 20;

printf("最高分:%d\n",high);
printf("最低分:%d\n",low);
printf("平均分:%d\n",ave);
}

❿ 用隨機函數產生某班20個學生的成績(成績∈[0,100]),統計不及格學生的人數,並將學生成績降序排列

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 20
void BubbleSort(int a[],int n);

int main()
{
int stu[N]={0},i=0,j;
srand((unsigned)time(NULL));
for(j=0;j<N;j++)
{
stu[j]=rand()%101;
if(stu[j]<60) i++;
printf("%4d",stu[j]);

}
printf("\n");
printf("不及格人數:%d\n",i);

BubbleSort(stu,N);
for(j=0;j<20;j++)
printf("%4d",stu[j]);

printf("\n");
return 0;
}
void BubbleSort(int a[],int n)
{
int i,j,t;
for(i=0;i<n;i++)
for(j=n-1;j>i;j--)
{
if(a[j-1]>a[j])
{
t=a[j-1];
a[j-1]=a[j];
a[j]=t;
}
}
}