| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 570 人关注过本帖
标题:关于函数的调用,程序出错
只看楼主 加入收藏
slightt
Rank: 1
来 自:惠州
等 级:新手上路
帖 子:24
专家分:0
注 册:2010-4-11
结帖率:100%
收藏
 问题点数:0 回复次数:3 
关于函数的调用,程序出错
本题这样的:某班有5个学生,考了三门课。求每个学生的总成绩和平均成绩,并按成绩由高到低排序。
程序错误在于 指针转换后指向其它类型在 sort 函数中
#include "Stdio.h"
 #include "string.h"

 char st[6][15];
 float cj[6][4];
 float tacj[6][3]; /* tacj[i][1]为总成绩 tacj[i][2]为平均成绩*/
 main()
 {  void input();
    void count();
    void sort();
    void output();
    input();
    count();
    sort();
    output();
    getch();
 }

 void input( )
 {
    int i,j;
    for(i=1;i<6;i++)
    {
       printf("input the %dth name and score:\n",i);
       scanf("%s",st[i]);
       for(j=1;j<4;j++)
          scanf("%f",&cj[i][j]);
    }
  }

  void count()
  {  int i,j;

     for(i=1;i<6;i++)
     {  tacj[i][1]=0;
        for(j=1;i<4;j++)
        { tacj[i][1]+=cj[i][j];
          tacj[i][2]=tacj[i][1]/3;
        }
     }
  }

  void sort()
  {  int flag;
     int i,j;
     char ts[15];
     float t;
     do
       {
         flag=0;
         for(i=1;i<6;i++)
         if(tacj[i+1][1]>tacj[i][1])
         {
            strcpy(ts,st[i]);strcpy(st[i],st[i+1]);strcpy(st[i+1],st);  /*交换姓名*/
            for(j=1;j<4;j++)                                            /*交换8门课程*/
            {
               t=cj[i][j];cj[i][j]=cj[i+1][j];cj[i+1][j]=t;
            }
            t=tacj[i][1];tacj[i][1]=tacj[i+1][1];tacj[i+1][1]=t;       /*交换总成绩*/
            t=tacj[i][2];tacj[i][2]=tacj[i+1][2];tacj[i+1][2]=t;       /*交换平均成绩*/
            flag=1;
         }
       }while(flag);
  }

  void output()
  {  int i,j;
     printf("the students' scores show as fellow:\n");
     printf("name calss1 calss2 calss3 sum  average  order\n");
     for(i=1;i<6;i++)
       { printf("%8s",st[i]);
         for(j=1;j<4;j++)
            printf("%7.2f",cj[i][j]);
         printf("%7.2f,%7.2f,%5d",tacj[i][1],tacj[i][2],i);
         printf("\n");
       }
  }
搜索更多相关主题的帖子: 函数 
2010-04-17 11:12
alai1235
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-4-3
收藏
得分:0 
前面没声明。。。
2010-04-17 11:38
xiaoxinwan
Rank: 2
等 级:论坛游民
帖 子:52
专家分:91
注 册:2010-4-6
收藏
得分:0 
void input( )
这个输入函数有问题。你这样输入的肯定不是你想要的,你应该有一个接受回车的语句,这样你输入字母后,在输入实数,系统才会接受
2010-04-17 11:40
slightt
Rank: 1
来 自:惠州
等 级:新手上路
帖 子:24
专家分:0
注 册:2010-4-11
收藏
得分:0 
回复 3楼 xiaoxinwan
能说的明白一点吗?要怎么操作。怎么改动?
2010-04-17 13:39
快速回复:关于函数的调用,程序出错
数据加载中...
 
   



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

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