当前位置 : 主页 > 网络编程 > 其它编程 >

c语言统计n个学生成绩

来源:互联网 收集:自由互联 发布时间:2023-07-02
本文目录一览:1、用c语言随机产生10个学生的成绩,学号=1000+(0-9随机数),学号 本文目录一览: 1、用c语言随机产生10个学生的成绩,学号=1000+(0-9随机数),学号和对应成绩输出到
本文目录一览:1、用c语言随机产生10个学生的成绩,学号=1000+(0-9随机数),学号

本文目录一览:

  • 1、用c语言随机产生10个学生的成绩,学号=1000+(0-9随机数),学号和对应成绩输出到屏幕,输出
  • 2、C语言,用随机函数生成100个考试分数
  • 3、C语言:生成20个学号姓名和5门成绩的结构体数组,不动其数据,用指针数组按平均成绩由高至低排序,咋写?
  • 4、怎样写一个随机生成成绩函数??

用c语言随机产生10个学生的成绩,学号=1000+(0-9随机数),学号和对应成绩输出到屏幕,输出

#include stdio.h

#include time.h

int main(){

int id[10],t,v;

float s[10],sv;

int i,j,k=0;

srand(time(0));

for (i=0;i10;i++) id[i]=1000+i;

for (i=0;i10;i++) {t=rand()%10;v=id[i];id[i]=id[t];id[t]=v;};

for (i=0;i10;i++) s[i]=41+rand()%60;

for (i=0;i10;i++) printf("(%d) %d %g\n",i,id[i],s[i]);

printf("==========\nThe best 3:\n");

for (i=0;i9;i++) for (j=i+1;j10;j++)

if (s[j]s[i]){v=id[i];id[i]=id[j];id[j]=v;sv=s[i];s[i]=s[j];s[j]=sv;};

for (i=0;i3;i++)printf("%d %g\n",id[i],s[i]);

printf("==========\n");

for (i=0;i10;i++) if (s[i]60) k++;

printf("k=%d\n",k);

for (i=0;i10;i++) if (s[i]60) printf("%d %g\n",id[i],s[i]);

return 0;

}

C语言,用随机函数生成100个考试分数

#include stdio.h

#include time.h

#include stdlib.h

#include string.h

void GenerateScore(int scoreArray[100])

{

int i;

srand((unsigned)time(NULL));

for (i = 0; i 100; i++)

{

scoreArray[i] = rand() % 51 + 45;

}

}

void GetTop10(int scoreArray[100], int *Top10)

{

int i, j;

int temp;

/* 先让Top10为数组的前10个,并排序 */

memcpy(Top10, scoreArray, 10 * sizeof(int));

for (i = 0; i 10; i++)

{

for (j = 0; j 10-1-i; j++)

{

if (Top10[j] Top10[j+1])

{

temp = Top10[j];

Top10[j] = Top10[j+1];

Top10[j+1] = temp;

}

}

}

/*再从后面的90个中,把比前10大的放到前10中*/

for (i = 10; i 100; i++)

{

Top10[10] = scoreArray[i];

j = 9;

while (j = 0 Top10[j] Top10[j+1])

{

temp = Top10[j];

Top10[j] = Top10[j+1];

Top10[j+1] = temp;

j--;

}

}

}

/*输出结果*/

char OutputResult(int *Top10)

{

int i, sum = 0;

for (i = 0; i 10; i++)

{

sum += Top10[i];

}

char r;

int average = sum / 10;

if (average = 90)

{

r = 'A';

}

else if (average = 80)

{

r = 'B';

}

else if (average = 70)

{

r = 'C';

}

else if (average = 60)

{

r = 'D';

}

else

{

r = 'F';

}

return r;

}

int main()

{

int a[100];

int top10[11];

GenerateScore(a);

GetTop10(a, top10);

printf("The result is: %c\n", OutputResult(top10));

return 0;

}

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;iN;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;ji;j++)

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

break;

}while(ji);

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]='\0';

for(j=0;j5;A[i].s[j++]=rand()%101);//随机生成成绩

}

for(i=0;iN;p[i]=A+i++);//为指针数组赋值

for(i=0;iN;i++){

for(k=i,j=k+1;jN;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\t%s\t",p[i]-SN,p[i]-NAME);//输出学号姓名

for(j=0;j5;printf("%4d",p[i]-s[j++]));//输出原始成绩

putchar('\n');

}

return 0;

}

怎样写一个随机生成成绩函数??

先给你说一哈C语言随机函数

编程时有时需要随机输入一些数,这是调用随机函数可以完成此相命令.

# include “stdio.h”

# include “stdlib.h”

# include “time.h” /*需引用的头文件*/

srand((unsigned)time(NULL)); /*随机种子*/

n=rand()%(Y-X+1)+X; /*n为X~Y之间的随机数*/

int rand(void) 函数int rand( void );

返回的是一个界于0~32767(0x7FFF)之间的伪随机数,包括0和32767。

C预先生成一组随机数,每次调用随机函数时从指针所指向的位置开始取值,因此使用rand()重复运行程序产生的随机数都是相同的,可以通过srand()函数来改变指针位置。 void srand( unsigned int seed ) 改变随机数表的指针位置(用seed变量控制)。一般配合time(NULL)使用,因为时间每时每刻都在改变,产生的seed值都不同。

你要生成随即成绩就可参照上面的生成:

score=rand()%100,产生多个可以加入循环。。

【感谢龙石为本站数据质量管理平台提供技术支撑 http://www.longshidata.com/pages/quality.html】

上一篇:PHP网上购物系统PrestaShop
下一篇:没有了
网友评论