本帖最后由 柿子饼同学 于 2022-8-1 11:37 编辑
帮你把代码改好了, 可用过
哦对, 忘了说, days 反正只有 0 和 1, 可用直接用 bool 省空间 , 下面循环的时候判断是否为 1 , 再加即可
#include <bits/stdc++.h>
using namespace std;
int n, m, k;
int days[1005][1005]; //全局变量自动设为 0
int main(){
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
cin >> n >> m >> k;
//int days[k][m] = {0}; 这样定义不对
//memset(days, 0, sizeof(days)); 如果要用局部变量, 可用 memset , 这条语句意思是把 days 所有元素设为 0
//注意, memset 是用字节的方法填充的, 所以建议只在第二个参数中填 0, -1, 1, 0x3f 等一个字节的
for(int i = 1; i <= n; i++){
for(int j = 1; j <= m; j++){
int temp;
cin >> temp;
days[temp][j] = 1; //记录第temp天时,教练需要准备第j套模拟题
}
}
for(int i = 1; i <= k; i++){
int sum = 0;
for(int j = 1; j <= m; j++){
sum += days[i][j]; //计算第i天时,教练需要准备的模拟题数量
//cout<<i<<" "<<j<<" "<<days[i][j]<<endl;
}
cout<<sum<<" "/*<<endl*/;
}
return 0;
}
|