24小时热门版块排行榜    

查看: 630  |  回复: 7

zyj8119

木虫 (著名写手)


[交流] 【求助】为什么此程序不对?

CODE:
#include
#define N 10
struct list
{    char city[10];
     float m[3],aver;
};
void aver_sort(struct list a[],int n)
{    int i,j,k;
     int  temp;
         for(i=0;i          {for(j=0;j<3;j++)
              a[i].aver+=a[i].m[j];
         a[i].aver/=3;
         }
         for(i=0;i          { k=i;
         for(j=i+1;j                  if(a[j].aver>a[k].aver)k=j;
                 if(k!=i)
                 { temp=a[j].m[i];a[j].m[i]=a[k].m[i];a[j].m[i]=temp;}
         }
}

void main()
{   struct list a[N]={{"Nanjing",36.6,43.6,40.9,0},{"Xian",35.4,39.8,41.7,0},{"Guangzhou",39.5,40.2,38.2,0}};
    int i,j;
        aver_sort(a,3);
        for(i=0;i<3;i++)
        {   printf("%10s:",a[i].city);
            for(j=0;j<3;j++)
                printf("%6.1f",a[i].m[j]);
        printf("%6.1f\n",a[i].aver);
        }
}

正确答案为:
        Nanjing: 36.7 43.6 40.9 40.4
  Guangzhou: 39.5 40.2 38.2 39.3
             Xian: 35.4 39.8 41.7 39.0
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

» 抢金币啦!回帖就可以得到:

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyj8119

木虫 (著名写手)


引用回帖:
Originally posted by zyj8119 at 2010-12-17 16:13:47:
[code]#include
#define N 10
struct list
{    char city[10];
     float m[3],aver;
};
void aver_sort(struct list a[],int n)
{    int i,j,k;
     int  temp;
         for(i=0;i

就是求各个城市的平均人数,然后按平均人数大小排序。
2楼2010-12-17 16:15:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

smart0193

木虫 (小有名气)


zyj8119(金币+5):谢谢每次顶贴!!! 2010-12-17 23:16:58
数据类型问题。aver_sort函数的变量temp的类型应为float.
3楼2010-12-17 19:55:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyj8119

木虫 (著名写手)


引用回帖:
Originally posted by smart0193 at 2010-12-17 19:55:53:
数据类型问题。aver_sort函数的变量temp的类型应为float.

应该怎么改呢?
4楼2010-12-17 20:45:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyj8119

木虫 (著名写手)


引用回帖:
Originally posted by smart0193 at 2010-12-17 19:55:53:
数据类型问题。aver_sort函数的变量temp的类型应为float.

还是一样的错误啊,输出还是不对。
6楼2010-12-17 23:16:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyj8119

木虫 (著名写手)


引用回帖:
Originally posted by zyj8119 at 2010-12-17 23:16:27:

还是一样的错误啊,输出还是不对。

程序语法貌似没有错误,但是逻辑有错误。
7楼2010-12-17 23:17:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

stephenliu89

银虫 (小有名气)


zyj8119(金币+5):谢谢小弟,你改的很好啊。。。。 2010-12-18 16:00:17
zyj8119:编辑内容 2010-12-18 16:02
引用回帖:
Originally posted by zyj8119 at 2010-12-17 23:17:35:

程序语法貌似没有错误,但是逻辑有错误。

我给你改了下,你看看
CODE:
#include
#define N 10
struct list
{    char city[10];
     float m[3],aver;
};
void aver_sort(struct list a[],int n)
{    int i,j,k;
     float  temp;
         for(i=0;i          {
            for(j=0;j<3;j++)
               a[i].aver+=a[i].m[j];
            a[i].aver/=3;
         }
         for(i=0;i          {
            k=i;
            for(j=i+1;j             {
                 if(a[j].aver>a[k].aver)
                    k=j;
                 if(k!=i)
                 {
                    temp=a[j].m[i];
                    a[j].m[i]=a[k].m[i];
                    a[j].m[i]=temp;
                 }
            }
         }
}

int main()
{  
    struct list a[N]=
    {
        {"Nanjing",36.6,43.6,40.9,0.0},
        {"Xian",35.4,39.8,41.7,0.0},
        {"Guangzhou",39.5,40.2,38.2,0.0}
    };
    int i,j;
    aver_sort(a,3);
    for(i=0;i<3;i++)
    {
       printf("%10s:",a[i].city);
       for(j=0;j<3;j++)
          printf("%6.1f",a[i].m[j]);
       printf("%6.1f\n",a[i].aver);
    }
    return 0;
}

[ Last edited by zyj8119 on 2010-12-18 at 16:02 ]
8楼2010-12-18 14:36:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
简单回复
2010-12-17 21:05   回复  
相关版块跳转 我要订阅楼主 zyj8119 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见