解题思路:定义一个二维数组来存放输入的信息,第一列用来存放所有果树的初始值,然后遍历数组。具体思路见代码注释。
第一遍提交得了80分,看了半天才明白了原因,快被自己蠢死......
定义数组应该为a[1000][1001],第一遍没有思考直接看了问题规模就定义成了a[1000][1000]。
有一列是专门用来放初始的果子数的呀啊喂.........
#include<iostream> #include<cmath> using namespace std; int a[1000][1001]; int main() { int m, n; //n为苹果棵树,m为疏果轮数 cin >> n >> m; int totalnum = 0; //所有果树的总果子数 int sumshu = 0; //每棵树总的疏果数 int max_shuguo = 0; //最大数的疏果数 int max_s = 1; //最大疏果树的编号 for (int i = 0; i < n; i++) { sumshu = 0; for (int j = 0; j <= m; j++) { cin >> a[i][j]; } } for (int i = 0; i < n; i++) { sumshu = 0; for (int j = 1; j <= m; j++) { a[i][0] = a[i][0] + a[i][j];//计算疏果完成后每棵果树剩多少果子 sumshu += abs(a[i][j]);//没棵果树的总共疏果量 //计算最大疏果量的数 if (sumshu > max_shuguo) { max_shuguo = sumshu; max_s = i + 1; } } totalnum += a[i][0];//所有果树最后加起来的剩余量 } cout << totalnum << " " << max_s << " " << max_shuguo << endl; system("pause"); return 0; }
来源:https://www.cnblogs.com/syq816/p/12289226.html