C语言题目 急~~~~~~~

输入3个学生的学号、姓名、成绩信息,每个学生有4门课的成绩。把平均成绩第一名的学生交换到数组下标为0的位置,同时将数组的所有元素输出。

下面是我写的,回为在学校里我的学校是050730..所以,我把学号定为字符型的,可以任意输入,希望能帮助你,谢谢! -.-
#include <stdio.h>
#include <string.h>
#define N 3

struct stud
{
char name[20];
char num[10];
float score[4];
float ave;
};

void main()
{
struct stud s[N],q;
int i,j,k;
float ave;
printf("请输入3名学生的学号 姓名 成绩信息\n");
for(i=0;i<3;i++)
scanf("%s %s %f %f %f %f",s[i].num,s[i].name,&s[i].score[0],&s[i].score[1],&s[i].score[2],&s[i].score[3]);
printf("学生信息为:\n");
for(i=0;i<3;i++)
printf("%s %s %3.1f %3.1f %3.1f %3.1f\n",s[i].num,s[i].name,s[i].score[0],s[i].score[1],s[i].score[2],s[i].score[3]);
//求平均值
for(i=0;i<3;i++)
{
s[i].ave=(s[i].score[0]+s[i].score[1]+s[i].score[2]+s[i].score[3])/4.0;
}

//按平均值排序
for(i=0;i <2;i++)
{
k=i;
for(j=i+1;j<3;j++)
if(s[k].ave<s[j].ave)
k=j;
if(k!=i)
{
q=s[i];
s[i]=s[k];
s[k]=q;
}
}

printf("排序后学生信息为:\n\n");
for(i=0;i<3;i++)
printf("%s %s %3.1f %3.1f %3.1f %3.1f %3.1f\n",s[i].num,s[i].name,s[i].score[0],s[i].score[1],s[i].score[2],s[i].score[3],s[i].ave);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-04-28
这个不太难吧?

建一个结构,把学号,姓名,四门成绩放到结构中,每个学生一个结构体

把四门成绩相加,进行排序,这个很容易吧,因为总分高,平均绩也高!

然后把结构按排序结果进行输出即可
第2个回答  2011-04-28
#include <iostream>
#include <string>
using namespace std;

struct stu
{
int num;
string name;
int score[4];
double aver;
};

void swap(stu a,stu b)
{
stu temp;
temp.num = a.num;
temp.name = a.name;
for(int j = 0; j < 4; j++)
temp.score[j] = a.score[j];

a.num = b.num;
a.name = b.name;
for(int j = 0; j < 4; j++)
a.score[j] = b.score[j];

b.num = temp.num;
b.name = temp.name;
for(int j = 0; j < 4; j++)
b.score[j] = temp.score[j];

}
int main()
{
stu stus[3];
int temp;

for(int i = 0; i < 3; i++)
{
temp = 0;
cin >> stus[i].num >> stus[i].name;
for(int j = 0; j < 4; j++)
{
cin >> stus[i].score[j];
temp += stus[i].score[j];
}
stus[i].aver = (double)temp/4;
}

stu max;
for(int i = 1; i < 3; i++)
{
if(stus[i].aver > max.aver)
{
swap(max,stus[i]);
}
}

swap(max,stus[0]);

for(int i = 0; i < 3; i++)
{
cout << stus[i].num << " ";
cout << stus[i].name << " ";
for(int j = 0; j < 4; j++)
cout << stus[i].score[j] << " ";
cout << endl;
}

return 0;
}
第3个回答  2011-04-28
结构体、排序、printf
鉴定完毕。

c语言小题目。急急急
1. 编程实现:从键盘上接收10个整数,并对其进行排序(要求排成升序)main(){int a[10],i,j,k,t;for(i=0;i<10;i++) scanf("%d",&a[i]);for(i=0;i<9;i++){k=i;for(j=i+1;j<10;j++)if(a[j]<a[k]) k=j;if(k!=i){t=a[k];a[k]=a[i]; a[i]=t;} ...

急!急!简单c语言编程题,求编写代码
\/\/第一题#include<stdio.h>void fun(int n){ int i,j,k,t;for(k=0;k<n;k++)\/\/控制总行数{ for(i=0;i<n-k-1;i++)\/\/控制输出空格,因为空格不好看见,就用*代替 printf("%c",'*'); for(j=0;j<2*k+1;j++)\/\/控制输出字母 { printf("%c",65+j)...

一道C语言题目,看图~大神帮忙解答下吧!急急急急急!!在线等
答案是D 在C语言中数组赋值可以如A,那样,【】里面定义了长度5{}中有最大不超过5个值,则赋值成功 B在5个数值之内所以也是正确的 答案C,就是另外中赋值方法,在【】中不定义长度,因此数组a[]的实际长度取决于{}中的值的数量,也就是说在C答案中有5个0作为数值,因此C答案中的a[]的实际...

c语言的一些题目,急!
4,char str[15]="C program!";printf("%d,strlen(str));输出结果是10,str就是一个字符串,它的最大长度是定义了的15,它保存的值是后面的"C program!",strlen()是一个求字符串长度的函数,返回的是一个整型的值,要包含头文件<string.h> 5,int a[][4]={{1,1},{2,2},{0,3}}...

一些C语言的问题,很紧急,非常感谢您能回答!!!
A)_256 B)void C)printf D)Float d:flaot 就对了 10.不合法的字符常量是 B。A)‘\\0xff’ B)‘\\65’ C)‘&’ D)‘\\027’你可以查一下书后面的附录 11.非法的字符常量是 C 。A)‘\\“’ B)‘\\011’ C)‘\\128’ D)‘\\xaa’跟上题目类似 12.符合...

怎么用C语言编写这道题的程序?急~~~
4\/2=2……0 2\/2=1……0 1\/2=0……1 把余数倒过来写,得100111。即39的二进制为100111。要求:给出一个x,返回其二进制的y.思路:1.将x\/2求余,将余数逐个保留到数组t[]中。2.x=x\/2.3.x不为0,循环,到第一步重新开始。4.x为0,结束循环。将数组逆序输出。代码:include "stdio....

C语言题目,急!!! 请编制程序实现:求100~1000所有能被5整除的数之和_百...
include "stdio.h"int main(){ int i,sum=0; for(i=100;i<=1000;i++) if(i%5==0) sum+=i; printf("100-1000范围内所有能被5整除的数之和为:%d\\n",sum);}

求求你们了!急!急! C语言问题
2、C语言规定,可执行程序的开始执行点是—— main函数 3、char *ch[20]表示的含义是—— 一个长度为20的指针数组,而且是字符型的。4、函数参数传递的方法有两种,即—— 值和指针 5、在C语言中 ,指针变量能够赋地址值或——改变存储单元中存储的值 二、选择 1、设x,y均为实型变量,则...

C语言二级考试,急,大哥们帮帮忙吧!
很明显.这是一个结构体的题目..这个题目其实很简单...struct ks \/*定义名为ks的结构体*\/ {int a; /*成员名..int型..a*/ int *b; /*成员名 int型的指针b..用于指向a的地址(后面给出)*/ }s[4],*p; /*定义一个数组里面有4个结构体变量,定义一个结构体类型指针p....

c语言单片机考试题目急用
1、uchar state1;\/\/主函数中 有 state1 变量,整个程序却没有改变量定义,可知,第1空即是该变量的定义。2、state1=0xfe; 或者 state1=~1;\/\/图中 LED为 低电平驱动,D1为 P10,循环中直接将state1的值赋值给 P1,所以,要想D1亮,state1 的值就 必须=0xfe 3、temp=4;\/\/题目要求 ...

相似回答
大家正在搜