回复 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;
}
这些代码经过调试正确的,用了两个函数分开比较大小与长度。结果如下
图片附件: 游客没有浏览图片的权限,请
登录 或
注册
图片附件: 游客没有浏览图片的权限,请
登录 或
注册