| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1489 人关注过本帖
标题:该怎么使用结构体完成这个问题。。没有学习链表
取消只看楼主 加入收藏
瘦不了噜er
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:30
专家分:135
注 册:2016-6-14
结帖率:91.67%
收藏
已结贴  问题点数:10 回复次数:1 
该怎么使用结构体完成这个问题。。没有学习链表
1. 定义一个结构体数组,编写函数 input( )实现从键盘输入表 1 中数据给数组。
 2. 编写计算函数 calculate(),给每个同学的总分和平均分填上数据。
 3. 编写查询函数 seek(),通过键盘输入一个姓名,查询该同学的各种数据;若此同学不存 在,则输出“NO FIND”。如:输入“Marry”,则输出 1003 号同学各项数据;输入“Machael”, 则输出“No find”。
4. (选做)编写按总分排序程序 sort(),根据每位学生的总分降序排列。






程序代码:
    

#include <stdio.h>
#include <conio.h>

struct Line {
    long num;
    char name[20];
    char sex[2];
    int age;
    struct Grade{
        int Math;
        int Computer;
        int Chemistry;
        int English;}gra;    
};

void calculate(struct Line L[],int n);

void input(struct Line L[],int n);
void output(struct Line L[],int n);

void main(){

    struct Line score[5];
    input(score,5);
    output(score,5);
    getch();
}



void input(struct Line L[],int n){

int i;
for(i=0;i<n;i++){
printf("\n请输入第%d个同学的学号:\n",i+1);
scanf("%d",&L[i].num);
printf("\n请输入第%d个同学的姓名:\n",i+1);
scanf("%s",&L[i].name);
printf("\n请输入第%d个同学的性别:\n",i+1);
scanf("%s",&L[i].sex);
printf("\n请输入第%d个同学的年龄:\n",i+1);
scanf("%d",&L[i].age);
printf("\n请输入第%d个同学的高数成绩:\n",i+1);
scanf("%d",&L[i].gra.Math);
printf("\n请输入第%d个同学的计算机成绩:\n",i+1);
scanf("%d",&L[i].);
printf("\n请输入第%d个同学的物理成绩:\n",i+1);
scanf("%d",&L[i].gra.Chemistry);
printf("\n请输入第%d个同学的英语成绩:\n",i+1);
scanf("%d",&L[i].gra.English);


}


void calculate(struct Line L[],int n){
int i
float *total[5]={NULL};
float *average[5]={NULL};
for(i=0;i<n;i++)
total[i]=L[i].gra.Math+L[i].[i].gra.Chemistry+L[i].gra.English;
average[i]=total[i]/4; 
printf("输出第%d个同学的总成绩:%f",i+1,total[i]);
printf("输出第%d个同学的平均成绩:%f",i+1,average[i]);
}




void output(struct Line L[],int n){

int i;
for(i=0;i<n;i++){
printf("学号:%d\n",L[i].num);
printf("姓名:%s\n",L[i].name);
printf("性别:%s\n",L[i].sex);
printf("年龄:%d\n",L[i].age);
printf("高数成绩:%d\n",L[i].gra.Math);
printf("计算机成绩:%d\n",L[i].);
printf("物理成绩:%d\n",L[i].gra.Chemistry);
printf("英语成绩:%d\n",L[i].gra.English);
printf("总成绩:%f\n",total[i]);
printf("平均成绩:%f\n",average[i]);



}





该怎么使用结构体完成这个问题。。没有学习链表

。。。不好意思 学的太烂了
搜索更多相关主题的帖子: 键盘 结构体 color 姓名 
2016-06-21 09:38
瘦不了噜er
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:30
专家分:135
注 册:2016-6-14
收藏
得分:0 
回复 2楼 grmmylbs
程序代码:
     void calculate(struct Line L[], int n) 
     {
         int i;
             //float total[5] = { 0 };
         //float average[5] = { 0 };
        for (i = 0; i < n; i++)
         {
             L[i].total = L[i].gra.Math + L[i]. + L[i].gra.Chemistry + L[i].gra.English;
             L[i].average = (float)L[i].total / 4;
             printf("输出第%d个同学的总成绩:%d\n", i + 1, L[i].total);
             printf("输出第%d个同学的平均成绩:%f\n", i + 1, L[i].average);
         }
     }



这里的这两句   
 //float total[5] = { 0 };
//float average[5] = { 0 };
是什么意思,需要写上吗?


2016-06-21 14:53
快速回复:该怎么使用结构体完成这个问题。。没有学习链表
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032777 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved