当前位置:首页 » 编程语言 » 随机产生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;
}
}
}