【发布时间】:2019-10-18 12:04:11
【问题描述】:
我是编程新手,所以我的怀疑可能很愚蠢。 所以当我试图解决一个挑战时,我必须从数组中的数字中形成最大的数字。 所以我创建了一个比较函数并传递给排序函数。在比较函数中,我检查 a+b 是否大于 b+a,反之亦然。 但编译器显示错误说明请求成员非类类型。
我实际上不知道如何解决这个问题,我尝试了谷歌搜索但没有得到我的解决方案。 我找到了类似的解决方案,但他们是用字符串做的。可以用数组来完成吗?
int myCompare( int a, int b){
int ab= a.append(b);
int ba= b.append(a);
if(ab>ba){
return 1;
}else{
return 0;
}
}
void biggestnum(int arr[], int n){
if(n==0 || n==1){
return;
}
sort(arr,arr+n, myCompare);
for(int i=0;i<n;i++){
cout<<arr[i]<<" ";
}
cout<<endl;
}
所以如果给定的数组是 {54, 546, 548, 60}; 结果应该是 6054854654。
【问题讨论】:
-
如果你不明白为什么你不能在原始类型上使用成员函数(比如
int),那么你需要回到你的教科书、教程或课程,因为你有一些东西错过了。 -
int ab= a.append(b);应该做什么?
标签: c++ arrays algorithm max unsigned-integer