| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2595 人关注过本帖, 1 人收藏
标题:五个学生,每个学生有学号,姓名,三科分数,要求用average函数求平均值,用 ...
只看楼主 加入收藏
z8869113
Rank: 2
等 级:论坛游民
帖 子:44
专家分:14
注 册:2010-12-14
收藏
得分:0 
回复 10楼 qq1023569223
我又改了下,输入没问题了,但是输出总是第一个数据,而且求不出均值,不知道拿出了问题了,麻烦看下好么
#include<stdio.h>
struct student
{
  int hao;
  char name[10];
  int fen[3];
}stu[5];
void input()
{
  int i;
   for(i=0;i<5;i++)
   {
    scanf("%d,%s,%d,%d,%d",&stu[i].hao,stu[i].name,&stu[i].fen[0],&stu[i].fen[1],&stu[i].fen[2]);
   }
}
int average()
{
  int i,k=0,j;
  for(j=0;j<5;j++)
  for(i=0;i<3;i++)
  {
      k+=stu[j].fen[i];
  }
  k=k/15;
return(k);
}
int max()
{
  int n[5]={0,0,0,0,0},i,j,k=0;
  for(j=0;j<5;j++)
   for(i=0;i<3;i++)
   {
    n[j]+=stu[j].fen[i];
   }
   
   for(i=0;i<4;i++)
   {
    if(n[i]<n[i+1]) ;
        
    else
    {
        k=n[i];
    n[i]=n[i+1];
    n[i+1]=k;
    }
    k=n[4];
   }
   return(k);   
}

void main()
{
  
   input();
   max();
   average();

   printf("%d,%s,%d,%d,%d\n",stu[max()].hao,stu[max()].name,stu[max()].fen[0],stu[max()].fen[1],stu[max()].fen[2]);
   printf("%d",average());
}

2010-12-30 17:23
z8869113
Rank: 2
等 级:论坛游民
帖 子:44
专家分:14
注 册:2010-12-14
收藏
得分:0 
回复 10楼 qq1023569223
不好意思,我是复制错了。我按你那个也没法输出想要的结果。
2010-12-30 21:00
z8869113
Rank: 2
等 级:论坛游民
帖 子:44
专家分:14
注 册:2010-12-14
收藏
得分:0 
回复 10楼 qq1023569223
我改了。。但是得不到想要的结果啊~麻烦了
2010-12-31 12:58
灵敏天平
Rank: 1
来 自:珠海
等 级:新手上路
帖 子:9
专家分:6
注 册:2010-11-24
收藏
得分:2 
其实可以不用结构体做的,我这里刚写了一个类似的
#include<stdio.h>
int TotalPoint(int score[][3],int n);
int AveragePoint(int sum[],int n);
void Order();
void Print(int score[][3],int sum[],int aver[],int num[],int n);
int Find(int score[][3],int sum[],int aver[],int num[],int n);
int sr(int num[],int score[][3]);

int score[30][3];
int num[30];
int order[30];
int sum[30],aver[30];
int n;

int main()
{
   n=sr(num,score);
   TotalPoint(score,n);
   AveragePoint(sum,n);
   Print(score,sum,aver,num,n);
   Find(score,sum,aver,num,n);
   return 0;
}

int TotalPoint(int score[][3],int n)
{
   int i;
   for(i=0;i<=n;i++)
   {
       sum[i]=score[i][0]+score[i][1]+score[i][2];
   }
   return 0;
}

int AveragePoint(int sum[],int n)
{
   int i;
   for(i=0;i<=n;i++)
   {
      aver[i]=sum[i]/3;
   }
   return 0;
}

void Order()
{
   int i,j,temp1,temp2,temp3,temp4,temp5,temp6;
   for(i=0;i<n-1;i++)
   {
      for(j=0;j<n;j++)
      {
         if(sum[j]>sum[i])
         {
            temp1=sum[j];
            sum[j]=sum[i];
            sum[i]=temp1;
            
            temp2=num[j];
            num[j]=num[i];
            num[i]=temp2;
            
            temp3=aver[j];
            aver[j]=aver[i];
            aver[i]=temp3;
            
            temp4=score[j][0];
            score[j][0]=score[i][0];
            score[i][0]=temp4;
            
            temp5=score[j][1];
            score[j][1]=score[i][1];
            score[i][1]=temp5;
            
            temp6=score[j][2];
            score[j][2]=score[i][2];
            score[i][2]=temp6;
         }
      }
   }
}

void Print(int score[][3],int sum[],int aver[],int num[],int n)  
{
   int i,j;
   
   printf("result:\n");
   printf("number\t MT\t EN\t PH\t SUM\t AVER\n");
   for(i=0;i<n;i++)
   {
      printf("%4d\t",num[i]);
      for(j=0;j<3;j++)
      {
         printf("%4d\t",score[i][j]);
      }
      printf("%5d\t%6d\n",sum[i],aver[i]);
   }
}

int Find(int score[][3],int sum[],int aver[],int num[],int n)
{
   int i,a;
   printf("enter num:");
   scanf("%d",&a);
   for(i=0;i<n;i++)
   {
      if(a==num[i])
      {
         printf("num is%d  sum is%d  aver is%d",num[i],sum[i],aver[i]);
      }
   }
}

int sr(int num[],int score[][3])
{
   int i,j;
   printf("please enter the total number of students\n");
   scanf("%d",&n);
   printf("enter number and score as MT EN PH\n");
   for(i=0;i<n;i++)
   {
      scanf("%d",&num[i]);
      for(j=0;j<3;j++)
      {
         scanf("%d",&score[i][j]);
      }
   }
   return n;
}
2011-01-01 15:15
灵敏天平
Rank: 1
来 自:珠海
等 级:新手上路
帖 子:9
专家分:6
注 册:2010-11-24
收藏
得分:0 
补充一下 那个order函数可以用循环的 我懒得改了……
2011-01-01 15:16
z8869113
Rank: 2
等 级:论坛游民
帖 子:44
专家分:14
注 册:2010-12-14
收藏
得分:0 
回复 15楼 灵敏天平
谢谢哈~这是要求用结构体做的,看看会不会用。。
2011-01-03 00:06
快速回复:五个学生,每个学生有学号,姓名,三科分数,要求用average函数求平均 ...
数据加载中...
 
   



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

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