目前正在做作业。我真的是C ++的新手,所以我对此并不了解。
我应该为中国余数定理编写代码,但是我的代码给出了错误,并且我不确定是什么问题。
问题是为此编写代码:
int main(){
cout<<crt(Mod(23,110),Mod(10,63))<<endl;
return 0;
}
错误:5
6 6 [错误]请求'num'中的成员'push_back',它是非类类型'int *'
我做了什么:
#include <iostream>
#include <list>
using namespace std;
int crt(int num[], int rem[], int num_[], int rem_[])
{
num.push_back(num_[0]);
rem.push_back(rem_[0]);
int k = sizeof(num) / sizeof(num[0]);
int x = 1;
while (true) {
for (int j = 0; j < k; j++)
if (x % num[j] != rem[j])
break;
if (j == k)
return x;
x++
}
return x;
}
int Mod(int a, int n)
{
num[] = { a };
rem[] = { n };
return num, rem;
}
int main()
{
cout << crt(Mod(23, 110), Mod(10, 63)) << endl;
return 0;
}
答案 0 :(得分:1)
int crt(int num[]; int rem[]; int num_[];int rem_[])
您需要逗号;不是分号。