❶ 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]='