为什么会没有输出
#include <iostream>#include <vector>
using namespace std;
typedef long long ll;
vector<ll> a, b;
int n, m;
int mod(vector<ll>& a, int n){
b.resize(n); // 调整b的大小与a相同
ll sum = 1;
for(int i = 0; i < n; i++){
b = a % m;
}
for(int i = 0; i < n; i++){
sum *= b;
}
return sum % m;
}
int main(){
int n, m;
cin >> n >> m;
a.resize(n);
for(int i = 0; i < n; i++) cin >> a;
cout << mod(a, n) << endl;
return 0;
}
输入:
4 6
1 2 3 4
结果没有输出
这段代码没有输出的原因是在主函数中cin了m的值,但是在mod函数中使用的却是全局变量m。由于全局变量m没有赋值,所以导致b的大小没有调整为正确的值。另外,在mod函数的第一个for循环中,应该是b[ i] = a % m,而不是b = a % m。
下面是修正后的代码:
#include <iostream>
#include <vector>
using namespace std;
typedef long long ll;
vector<int> a, b;
int n, m;
int mod(vector<int>& a, int n, int m){
b.resize(n); // 调整b的大小与a相同
ll sum = 1;
for(int i = 0; i < n; i++){
b = a % m;
}
for(int i = 0; i < n; i++){
sum *= b;
}
return sum % m;
}
int main(){
cin >> n >> m;
a.resize(n);
for(int i = 0; i < n; i++) cin >> a;
cout << mod(a, n, m) << endl;
return 0;
}
修正后的代码中,将mod函数的参数列表修改为传递a、n和m三个参数,并在调用时传入正确的值。修正后,代码可以正常输出结果。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 #include <iostream>
#include <vector>
using namespace std;
typedef long long ll;
vector<ll> a, b;
int n, m;
int mod(vector<ll>& a, int n){
b.resize(n); // 调整b的大小与a相同
ll sum = 1;
for(int i = 0; i < n; i++){
b = a % m;
}
for(int i = 0; i < n; i++){
sum *= b;
}
return sum % m;
}
int main(){
cin >> n >> m;
a.resize(n);
for(int i = 0; i < n; i++) cin >> a;
cout << mod(a, n) << endl;
return 0;
}
给个最佳答案吧!!! 跪求最佳
页:
[1]