| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 651 人关注过本帖
标题:麻烦帮我看下,我调试了好久就是得不到结果……
只看楼主 加入收藏
ai8343512
Rank: 2
等 级:论坛游民
帖 子:75
专家分:94
注 册:2011-8-7
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:16 
麻烦帮我看下,我调试了好久就是得不到结果……
这是我书上的一个机试题,题目要求是通过形参指针传回主函数的一个最高分(只有一个最高分)。
不知道为什么,有错误提示,但就是看不懂,以下就是,实在是逼的我没话说……
#include<stdio.h>
#include<string.h>
#define N 10
typedef struct
{
    char name[10];
    int s;
}STU;
void fun(STU a[],STU *m)
{
    m=a;
    for(int i=1;i<N;i++)
        if(strcmp(a[i].s,*m.s)>0)
            m=&a[i];
}
void main()
{
    STU a[N]={{"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A05",77},{"A06",90},{"A07",79},{"A08",61},{"A09",80},{"A10",71}},m;
        int i;
    fun(a,&m);
    printf("****the result****\n");
    printf("the top %s,%d\n",m.num,m.s);
}
错误提示如下:
--------------------Configuration: 3_3 - Win32 Debug--------------------
Compiling...
3_3.cpp
F:\C++文档\3_3\3_3.cpp(13) : error C2228: left of '.s' must have class/struct/union type
F:\C++文档\3_3\3_3.cpp(13) : error C2664: 'strcmp' : cannot convert parameter 1 from 'int' to 'const char *'
        Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
F:\C++文档\3_3\3_3.cpp(22) : error C2039: 'num' : is not a member of 'STU'
        F:\C++文档\3_3\3_3.cpp(5) : see declaration of 'STU'
搜索更多相关主题的帖子: include 
2011-08-07 13:45
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:1 
第13行,指针取数据成员用->

授人以渔,不授人以鱼。
2011-08-07 14:03
ilovebaishi
Rank: 1
等 级:新手上路
帖 子:4
专家分:1
注 册:2011-8-7
收藏
得分:0 
是应该用m.s吧
2011-08-07 15:08
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:3 
以下是引用ilovebaishi在2011-8-7 15:08:30的发言:

是应该用m.s吧

是(*m).s,或m->s

授人以渔,不授人以鱼。
2011-08-07 15:10
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:5 
程序代码:
#include<stdio.h>
#include<string.h>
#define N 10
typedef struct
{
    char name[10];
    int s;
}STU;
void fun(STU a[],STU *m)
{
    m=a;
    for(int i=1;i<N;i++)
        if(strcmp(a[i].name,m->name)>0)
            m=&a[i];
}
void main()
{
    STU a[N]={{"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A05",77},{"A06",90},{"A07",79},{"A08",61},{"A09",80},{"A10",71}},m;
        int i;
    fun(a,&m);
    printf("****the result****\n");
    printf("the top %s,%d\n",m.name,m.s);
}

                                         
===========深入<----------------->浅出============
2011-08-07 16:46
ai8343512
Rank: 2
等 级:论坛游民
帖 子:75
专家分:94
注 册:2011-8-7
收藏
得分:0 
前两楼的说的都没错,我一个是指针取数据成员的方式错了,还有一个就是最后输出时把name写成num了……
可现在错误是没了,为什么执行结果却是这个样子?如下:

****the result****
the top is 烫烫烫烫烫烫烫烫A01,-858993460
Press any key to continue
顺便我把改过后的程序代码打上去:
程序代码:
#include<stdio.h>
#define N 10
typedef struct
{
    char name[10];
    int s;
}STU;
void fun(STU a[],STU *m)
{
    m=a;
    for(int i=1;i<N;i++)
        if(a[i].s>m->s)
            m=&a[i];
}
void main()
{
    STU a[N]={{"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A05",77},{"A06",90},{"A07",79},{"A08",61},{"A09",80},{"A10",71}},m;
    fun(a,&m);
    printf("****the result****\n");
    printf("the top is %s,%d\n",m.name,m.s);
}


[ 本帖最后由 ai8343512 于 2011-8-7 18:06 编辑 ]

思考不应该由他人来指导,会思考的人不需要你来提醒他去思考一个简单的问题。
2011-08-07 17:51
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你看清楚你输出的是什么!
收到的鲜花
  • ai83435122011-08-09 17:36 送鲜花  3朵   附言:一定要加分!

授人以渔,不授人以鱼。
2011-08-07 17:59
ai8343512
Rank: 2
等 级:论坛游民
帖 子:75
专家分:94
注 册:2011-8-7
收藏
得分:0 
是字符串和分数啊?难道哪里错了?

思考不应该由他人来指导,会思考的人不需要你来提醒他去思考一个简单的问题。
2011-08-07 18:03
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
序号呢?怎么查找的?找出的结果放在数组中第几个元素中?

授人以渔,不授人以鱼。
2011-08-07 18:07
ai8343512
Rank: 2
等 级:论坛游民
帖 子:75
专家分:94
注 册:2011-8-7
收藏
得分:0 
回复 9楼 TonyDeng
序号不是在fun函数中就已经定下来了么?并把这个序号的数据赋值给了*m
m并不存在第几个元素啊,它就是用来承接数据的一个结构体变量,而不是结构体数组啊。

思考不应该由他人来指导,会思考的人不需要你来提醒他去思考一个简单的问题。
2011-08-07 18:15
快速回复:麻烦帮我看下,我调试了好久就是得不到结果……
数据加载中...
 
   



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

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