| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
ADSL如何秒变专线,公网IP盒子了解一下千里之行 始于足下
共有 2535 人关注过本帖
标题:请教下怎么把下面的算法用c++变出来~自己折腾了很久。。错误太多了。缺一个 ...
只看楼主 加入收藏
ccccmeiyi
Rank: 1
等 级:新手上路
帖 子:14
专家分:7
注 册:2016-3-3
结帖率:60%
  已结贴   问题点数:10  回复次数:4   
请教下怎么把下面的算法用c++变出来~自己折腾了很久。。错误太多了。缺一个结构体定义,和主函数。
int compare(sqlist A,sqlist B)
{
    j=0;
    while(j<A.length&&j<B.length)
    {
        if(A.elem[j]<B.elem[j])  return (-1);
        else if(A.elem[j]>B.elem[j])  return(1);
        {
            else j++;
        }
    }
    if(A.length==j<B.length)  return (0);
    else if(A.length<j<B.length)  return (-1);
         else return(1);
}
搜索更多相关主题的帖子: compare 结构体 
2016-03-11 11:21
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
  得分:5 
else if(A.elem[j]>B.elem[j])  return(1);
        {
            else j++;
        }
看不懂这句啊
2016-03-11 21:12
ccccmeiyi
Rank: 1
等 级:新手上路
帖 子:14
专家分:7
注 册:2016-3-3
  得分:0 
回复 2楼 令狐少侠56
是比较链表A,B中的元素大小

我很菜,但我不放弃。
2016-03-12 15:26
ccccmeiyi
Rank: 1
等 级:新手上路
帖 子:14
专家分:7
注 册:2016-3-3
  得分:0 
#include<iostream>
using namespace std;
struct SqList
{
    char elem[100];
    int length;
};
int compare(struct SqList A,struct SqList B)
{
    int j=0;
    while(j<A.length&&j<B.length)
    {
        if(A.elem[j]<B.elem[j]) cout<<1;
        else if(A.elem[j]>B.elem[j])  cout<<2;
            else   j++;
        
    }
    if(A.length==B.length)  cout<<3;
    else if(A.length<B.length)  cout<<4;
         else cout<<5;

}
int main()
{
    int N;
    struct SqList C={"afternnn",8};
    struct SqList D={"afternoon",9};
    N=compare(C,D);
    return 0;
   
}
这是我自己编的。。请教哪里有错?

我很菜,但我不放弃。
2016-03-12 17:14
向上的小树
Rank: 2
来 自:湖南~岳阳
等 级:论坛游民
帖 子:41
专家分:30
注 册:2013-12-26
  得分:5 
回复 4楼 ccccmeiyi
1、你的函数里面缺少返回值,这个错误编译器里面有报的。我不知道你是不是刚学编程的新手,不然的话这种问题很容易找的。
2、写代码请注意代码规范,你自己看下你的代码,对比下书上或者网上的规范代码有什么不同,首先你自己觉得看起来舒不舒服?
3、compare函数逻辑性也有问题,前面while里面,你是想比较哪个字符串要大,而后面的选择语句又是比较哪个的字符个数要多,这个你不觉得很别扭吗?建议你分开比较,写两个函数,一个比较大小,一个只比较字符个数。

程序代码:
#include<iostream>
using namespace std;

#define OK        1
#define ERROR    0

struct SqList
{
    char elem[100];
    int length;
};
int compare(struct SqList A, struct SqList B)
{
    int j=0;
    while(j < A.length && j < B.length)
    {
        if(A.elem[j] < B.elem[j]) 
            return OK;
        else if(A.elem[j] > B.elem[j])  
            return ERROR;
        else   j++;
    }

}
int compare_length(struct SqList A, struct SqList B)
{
    if(A.length == B.length)
        return 3;
    else if(A.length<B.length)
        return 4;
    else 
        return 5;
}
int main()
{
    int N, m;
    struct SqList C={"afternnn",8};
    struct SqList D={"afternoon",9};
    N = compare(C,D);
    m = compare_length(C, D);
    return 0;
}

这些代码经过调试正确的,用了两个函数分开比较大小与长度。结果如下
附件: 您没有浏览附件的权限,请 登录注册

。。。。。。一定要用代码敲出自己的牛奶和面包,加油。。。。。。。
2016-03-13 20:49







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

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