| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 714 人关注过本帖
标题:[求助]错误提示:非法的结构运算在main函数中
只看楼主 加入收藏
ljrainxy
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-5-23
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
[求助]错误提示:非法的结构运算在main函数中
例题如下
  问题的提出:某大学开田径运动会,现有12名选手参加100米比赛,对应的运动员号及成绩如表所示,请按照成绩排名并输出,要求每一行输出名次、运动员号及成绩。要求用冒泡法排序。
运动员号    成绩(秒)    运动员号    成绩(秒)
001    13.6    031    14.9
002    14.8    036    12.6
010    12.0    037    13.4
011    12.7    102    12.5
023    15.6    325    15.3
025    13.4    438    12.7

我的程序如下
struct RES
    {char num;
     float ti;}boy[12]={
                           {001,13.6},
                           {002,14.8},
                           {010,12.0},
                           {011,12.7},
                           {023,15.6},
                           {025,13.4},
                           {031,14.9},
                           {036,12.6},
                           {037,13.4},
                           {102,12.5},
                           {325,15.3},
                           {438,12.7},};
main()
{   int i,j,temp;
     for(i=0;i<11;i++)
       for(j=i+1;j<12;j++){
        if(boy[j].ti>boy[i].ti){temp=boy[j];boy[j]=boy[i];boy[i]=temp;}}
     for(i=0;i<12;i++)
     printf("%d\t%s\t%f\n",i,boy[i].num,boy[i].ti);
}

在运行之后为什么总是提示  非法的结构运算在main函数中   请各位大虾帮俺看看  刚开始学有写问题不明白
结构体成员之间能进行比较么?按我上述思路比较的是成员的地址还是值?
搜索更多相关主题的帖子: main 函数 结构 提示 运算 
2010-05-23 16:50
ww稻草人
Rank: 5Rank: 5
来 自:陕西西安
等 级:职业侠客
帖 子:57
专家分:309
注 册:2010-5-11
收藏
得分:20 
看这句 if(boy[j].ti>boy[i].ti){temp=boy[j];boy[j]=boy[i];boy[i]=temp;}}你的boy应该是个结构体类型,temp应该是整形类型,你用你定义的结构体类型赋值给整型,当然不可以了,貌似应该改为temp=boy[i].num吧,我不知道你的结构体是怎样定义的,只是猜出来的,你再检查一下吧。

我的博客  http://blog..cn/daocaoren020
2010-05-23 17:31
ljrainxy
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-5-23
收藏
得分:0 
回复 2楼 ww稻草人
恩 我也是刚发现的 是有点问题 我正在改 谢谢 关于其他的问题 能告诉下我么
2010-05-23 17:42
ljrainxy
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-5-23
收藏
得分:0 
#include <stdio.h>
struct RES
    {char num[4];
     float ti;}boy[12]={
                           {"001",13.6},
                           {"002",14.8},
                           {"010",12.0},
                           {"011",12.7},
                           {"023",15.6},
                           {"025",13.4},
                           {"031",14.9},
                           {"036",12.6},
                           {"037",13.4},
                           {"102",12.5},
                           {"325",15.3},
                           {"438",12.7}};
main()
{   struct RES temp;
    int i,j;
     for(i=0;i<11;i++)
       for(j=i+1;j<12;j++){
        if(boy[j].ti<boy[i].ti){temp=boy[j];boy[j]=boy[i];boy[i]=temp;}}
     for(i=0;i<12;i++)
     printf("%d\t%s\t%f\n",i,boy[i].num,boy[i].ti);
}
现在这样改  应该没问题了  看来是自己的马虎
2010-05-23 17:45
快速回复:[求助]错误提示:非法的结构运算在main函数中
数据加载中...
 
   



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

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