第1个回答 推荐于2016-09-14
1,
#include <stdio.h>
#define m 5
#define n 3
struct cheng
{
int num; //your number
char name[81]; //your name
int mark[3]; //the three points
int ave; //the result
};
void input(struct cheng s[5])
{
int i,j;
for (i=0;i<m;i++){
printf("enter your num:");
scanf("%d",&s[i].num);
printf("and your name:");
scanf("%s",s[i].name);
printf("your got is ");
for (j=0;j<n;j++)
scanf("%d",&s[i].mark[j]);
}
}
void average (struct cheng s[5])
{
int i,j,maxi;
float sum;
for (i=0;i<m;i++){
sum=0;
for (j=0;j<n;j++)
sum+=s[i].mark[j];
s[i].ave=sum/3;
}
}
int max (struct cheng s[5])
{
int big=0,maxi=0,i;
big=s[0].ave;
for (i=0;i<m;i++)
if (s[i].ave>big)
{
big=s[i].ave;
maxi=i;
}
return maxi;
}
int main (void)
{
struct cheng student[5];
int bigi,i;
printf("input the five students' information:\n");
input(student);
average(student);
bigi=max(student);
printf("the three studnets' got is :");
for (i=0;i<m;i++)
printf("%d ",student[i].ave);
printf("\n");
printf("of the three students'bigest is :%d-------%d\n",(bigi+1),student[bigi].a
ve);
return 0;
}
3,
#include <stdio.h>
#define n 5
struct maopao
{
int num;
char name[15];
char sex;
int age;
double grade;
};
void input (struct maopao *zhen[n])
{
int i;
printf("***************************************************************\n");
printf("enter the five students' grade\n");
for (i=0;i<n;i++){
printf("input your number:");
scanf("%d",&((*zhen[i].num));//input your num
printf("input your name:");
scanf("%s",*(zhen[i].name);//input your name
printf("input your sex");
scanf("%c",&(*(zhen[i].sex));//input your sex
printf("input your sex:");
scanf("%d",&(*(zhen[i].age));//input your age
printf("input your grade:");
scanf("%lf",&(*(zhen[i].grade));//input your grade
}
}
void sortnum (struct maopao *p[n])
{
int i,j;
struct maopao *temp;
for (i=0;i<n-1;i++)
for (j=i+1;j<n;j++)
if (*p[i].grade<*p[j].grade)
{
temp=p[i];
p[i]=p[j];
p[j]=temp;
}
}
void output (struct maopao *p[n])
{
int i,j;
printf(" the sort is \n");
printf("***************************************************************\n");
printf("\tnum\tsex\tage\tgrade\t\n");
for (i=0;i<n;i++){
printf("%d\t%s\t%c\t%d\t%.2lf\n",*p[i].num,*p[i].name,*p[i].sex,*p[i].age,*p[i].
grade);
}
printf("***************************************************************\n");
}
int main (void)
{
struct maopao sort[n];
struct maopao *point[n];
int i;
for (i=0;i<n;i++)
point[i]=&sort[i];
input(point);
printf("the information which your input is \n");
output(point);
sortnum(point);
output(point);
return 0;
}本回答被提问者采纳
第2个回答 2007-06-21
有一个班的10学生信息包括,学号,姓名,以及门课的成绩,要求从键盘上面输入每个学生的学号,姓名,三门课程的成绩,然后要求求出每个学生的总成绩,和每个学生的平时成绩,然后按照总成绩的从高到低输出每个学生的信息,包括 学号 姓名 三门课成绩,总成绩,平均成绩,)用结构体完成
#include<stdio.h>
#include<string.h>
#include<malloc.h>
typedef struct stu //一个学生的档案
{
char num[20];//学号
char name[20];//姓名
float score[5]; //成绩,前三门是单科成绩,第四个是总分,最后一个是平均分
}student;
student s[10]; //所有学生的信息
void main()
{
void init();//初始化函数申明
void sort();//排序函数申明
void print();//输出函数申明
init();
sort();
print();
}
void init()//初始化所有学生的档案
{
int i,j;
for(i=0;i<10;i++) //逐个键入学生的信息
{
printf("请输入一学生的学号:");
scanf("%s",s[i].num);
printf("请输入该学生的姓名:");
scanf("%s",s[i].name);
printf("请输入该学生的三门成绩:");
s[i].score[3]=0;
for(j=0;j<3;j++)
{
scanf("%f",&s[i].score[j]);
s[i].score[3]+=s[i].score[j]; //求总分
}
s[i].score[4]=s[i].score[3]/3; //求平均分
}
printf("学生档案建立成功!\n");
}
void sort()
{
int i,j,k;
char str[20];
float temp;
for(i=0;i<9;i++) //主循环,进行排名
for(j=i+1;j<10;j++)
if(s[j].score[3]>s[i].score[3])
{
strcpy(str,s[i].num); //交换学号
strcpy(s[i].num,s[j].num);
strcpy(s[j].num,str);
strcpy(str,s[i].name); //交换姓名
strcpy(s[i].name,s[j].name);
strcpy(s[j].name,str);
for(k=0;k<5;k++) //交换成绩
{
temp=s[i].score[k];
s[i].score[k]=s[j].score[k];
s[j].score[k]=temp;
}
}
}
void print()
{
int i;
for(i=0;i<10;i++)
printf("%s %s %.1f %.1f %.1f %.1f %.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].score[4]);//保留一位小数输出
}
这是我刚刚帮人家做的一个和你差不多的题目,你只要稍微改改就可以完成第一题了,下面的我也没做过,呵呵~~~~
八楼的家伙,你拷贝我的程序干嘛,真郁闷。。。。
第3个回答 2007-06-21
#include<stdio.h>
main()
{
int i=0,h=0,w=0,y=0,A=0,wa=-1;
double a[100],x,t,s=0;
char ha;
for(i=0;i<=100;i++)
{
a=0;
}
i=0;
printf("输入您的数值,输入一个按一次回车,若输入完了请一次性输入阿拉伯数字1234567890在按回车(输入完在按)\n");
do{
scanf("%lf",&a[w]);
w++;
wa=w-1;
}while(a[wa]!=1234567890&&w!=100);
a[wa]=0;
x=a[0];
for(i=0;i<=99;i++)
{
printf("%4g",a);
}
printf("\n以上为您输入的数据\n要求平均数请输入a按回车\n要求最大值请输入b按回车\n要找相同的数输入c按回车\n要结束本程序输入g按回车\n请输入命令:");
scanf("%c",&ha); //这一句好象有问题 总是不能输入不知道咋了
if(ha=='a')
{
for(i=0;i<=100;i++)
{
s=a+s;
s=s/w;
}
printf("%g",s);
}
if(ha=='b')
{
for(y=0;y<=100;y++)
{
if(a[y]>x)
x=a[y];
}
printf("%g",x);
}
if(ha=='c')
{
printf("请输入要找的数字:");
scanf("%d",&t);
for(A=0;A<=100;A++)
{
if(t==a[A])
printf("第%d个数据为%g\n",A,a[A]);
}
}
}
第4个回答 2007-06-22
汗。。。。。 这种题帮你写出来是害你。 最简单的冒泡排序和指针操作 基础的东西,自己写吧,多练习练习还是有好处的 回答者:匿名 6-21 10:56这个朋友说的是实话啊 楼主 你要是为了学会 看看正确答案 老师能帮你如果为了应付 我坦率说 这几个是你期末考试必考的题 你乐意现在弄会还是 补考的时候再研究基本随你了 c语言入门重点内容 考试必考