妾身感觉这个题目不是很难,就是对二维数组中特定行列的数进行操作。
#include <iostream>
#include <string>
using namespace std;
int main()
{
int n, m;
cin >> n >> m;
int t = 0, k = 0, p = 0;
int arr[1001][1001] = { 0 };//存放输入的数
int min = 0, a[1001] = { 0 };//min用来记录的疏果最多的个数,a数组来依次存放每一棵果树疏果的个数
int i, j;
for (i = 0; i < n; i++)
{
for (j = 0; j <= m; j++)
{
cin >> arr[i][j];
t += arr[i][j];
if (j != 0)
{
a[i] += arr[i][j];
}
}
if (a[i] < min)
{
min = a[i];
k = i + 1;
}
}
p = 0-min;//疏果为负数
cout << t << " ";
cout << k << " ";
cout << p << " ";
system("pause");
return 0;
}
这样写通过了,但是有一个坏处,那就是二维数组开的太大了。后来妾身想了想,这个二维数组简直是多此一举,只要是个整型变量存放输入的数就行了。诶呀,妾身还真是笨死了。简单修改一下就好了,将数据存放在二维数组是方便理解问题,嘻嘻!
#include <iostream>
#include <string>
using namespace std;
int main()
{
int n, m;
cin >> n >> m;
int t = 0, k = 0, p = 0;
int arr=0;//存放输入的数
int min = 0, a[1001] = { 0 };//min用来记录的疏果最多的个数,a数组来依次存放每一棵果树疏果的个数
int i, j;
for (i = 0; i < n; i++)
{
for (j = 0; j <= m; j++)
{
cin >> arr;
t += arr;
if (j != 0)
{
a[i] += arr;
}
}
if (a[i] < min)
{
min = a[i];
k = i + 1;
}
}
p = 0-min;//疏果为负数
cout << t << " ";
cout << k << " ";
cout << p << " ";
system("pause");
return 0;
}
小女子继续努力!