| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 789 人关注过本帖
标题:C语言查找求解
只看楼主 加入收藏
wsliuyunming
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:54
专家分:143
注 册:2010-9-26
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:18 
C语言查找求解
程序代码:
/* Note:Your choice is C IDE */
#include "stdio.h"
#include "string.h"
typedef struct node  //定义结点
{char a[10];
}Qnode;
Qnode *shuru(Qnode s[]) //输入10个串

{  int i;
     for(i=0;i<10;i++)
      gets(s[i].a);
      return s;
}
char * bidaxiao(Qnode s[],char *b)
{   int i;
    strcpy(b,s[0].a);
     for(i=0;i<10;i++)
       if(s[i].a<s[i+1].a)
        strcpy(b,s[i+1].a);
    return b;
}


void main()
{ char b[10],*c;

 Qnode *p,s[10];
    int i;
      p=s;
     shuru(p);
     c=bidaxiao(p,b);
     puts(c);
}


  输入10个字符串  查找最长的串并输出。。。。大家帮忙看看哪里错了。。谢谢
搜索更多相关主题的帖子: C语言 求解 
2010-10-15 20:15
日的起烟烟
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:137
专家分:129
注 册:2010-2-27
收藏
得分:5 
if(s[i].a<s[i+1].a)


比较的是地址  后面的肯定比前面的大··

差值为10*sizeof(char)

应该是  if( s[i].a[0] < s[i+1].a[0] )

或是  if( *(s[i].a) < *(s[i+1].a) )



[ 本帖最后由 日的起烟烟 于 2010-10-15 20:31 编辑 ]
2010-10-15 20:26
wsliuyunming
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:54
专家分:143
注 册:2010-9-26
收藏
得分:0 
回复 2楼 日的起烟烟
那怎么改?
2010-10-15 20:29
日的起烟烟
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:137
专家分:129
注 册:2010-2-27
收藏
得分:0 
不要用VOID MAIN  MAIN完了记得要返回一个值·

标准库不要用“”

如何更改··已经在2L编辑过了
2010-10-15 20:35
wsliuyunming
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:54
专家分:143
注 册:2010-9-26
收藏
得分:0 
回复 4楼 日的起烟烟
刚才的我又改了一下。。。
程序代码:
/* Note:Your choice is C IDE */
#include "stdio.h"
#include "string.h"
typedef struct node
{char a[10];
}Qnode;
Qnode *shuru(Qnode *s)
{  int i;
     for(i=0;i<10;i++,s++)
      gets(s->a);
      return s;
}
char * bidaxiao(Qnode s[],char *b)

{   int i;
    strcpy(b,s[0].a);
     for(i=0;i<10;i++)
       if(strlen(s[i].a)<strlen(s[i+1].a))//改成比长度 刚才那个忘了写了 
        strcpy(b,s[i+1].a);
    return b;
}



 main()
{ char b[10],*c;

 Qnode *p,s[10];
    int i;
      p=s;
     shuru(p);
     c=bidaxiao(p,b);
     puts(c);
return 1;


 }
能看看哪个地方错了吗 ?谢谢

2010-10-15 20:59
日的起烟烟
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:137
专家分:129
注 册:2010-2-27
收藏
得分:0 
我真的很····菜鸟啊···

你那么危险的错误我居然才发现··


shuru(p);··指针未初始··非常危险··

你让p指向S··其实你P根本不需要··

函数全部传递S就可以了

太恐怖了··

输入函数用的gets却不放置NUL到.a[9]···



[ 本帖最后由 日的起烟烟 于 2010-10-15 21:22 编辑 ]
2010-10-15 21:19
system3288
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:79
专家分:140
注 册:2010-10-9
收藏
得分:0 
他那个函数不是有返回值的吗,怎么没有定义指针去接收了,其实我不太懂,只是随便说说,说错了,当我没说就好了。不许笑我啊。
2010-10-15 21:21
wsliuyunming
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:54
专家分:143
注 册:2010-9-26
收藏
得分:0 
回复 6楼 日的起烟烟
看一下我5楼那个程序 要怎么样改?谢谢
2010-10-15 21:25
m21wo
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:4
帖 子:440
专家分:1905
注 册:2010-9-23
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <string.h>
typedef struct node
{
    char a[10];
}Qnode;
Qnode *shuru()
{ 
    int i;
    Qnode* s;
    s=new Qnode[4];
    for(i=0;i<4;i++)
    {
        gets(s[i].a);

    }
    return s;
}
char * bidaxiao(Qnode s[],char *b)
{
    strcpy(b,s[0].a);
    for(int i=1;i<4;i++)
        if(strlen(s[i-1].a)<strlen(s[i].a))//改成比长度 刚才那个忘了写了
            strcpy(b,s[i].a);
    return b;
}


int main()
{
    char *b,*c;
    b=new char[10];
    Qnode *p,*q;
    q=shuru();
    c=bidaxiao(q,b);
    printf("%s",c);
    return 0;

}
小改了一下

If You Want Something, Go Get It, Period.
2010-10-15 21:42
日的起烟烟
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:137
专家分:129
注 册:2010-2-27
收藏
得分:0 
程序代码:
/* Note:Your choice is C IDE */

#include <stdio.h>  
#include <string.h>

typedef struct node
{
    char a[10+1];  // 留一个给NUL
}Qnode;


Qnode *shuru(Qnode *s)
{
     int i;

     for(i=0;i<10;i++,s++)
     {
            gets(s->a) ; //这里不排除溢出的可能···溢出就会覆盖后面的内容

            s->a[10] = '\0' ;  不管是不是溢出··保证每个结构的数组不超标
     }

      return s;
}

char * bidaxiao(Qnode s[], char *b)

{
    int i;

    strcpy(b,s[0].a);

     for(i=0;i<9;i++)
       if( strlen(s[i].a) < strlen(s[i+1].a)) //改成比长度 刚才那个忘了写了
         strcpy(b,s[i+1].a);

    return b;
}


int main(void)
{
    char  b[10+1],*c;

    Qnode s[10];

    shuru(s);
    c = bidaxiao(s,b);
    puts(c);

    return 0;
   
}


[ 本帖最后由 日的起烟烟 于 2010-10-15 22:09 编辑 ]
2010-10-15 21:44
快速回复:C语言查找求解
数据加载中...
 
   



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

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