Var
aa[1..1000, 1..1000] : array of integer;
i, j, m, n : integer;
r : boolean;
begin
{считываем массив}
readln(m, n);
for i := 1 to m do
for j := 1 to n do
read(aa[i, j]);
{ r равен true до первого элемента, равного 0}
r := true;
i := 0;
while i <= m and r = true do
begin
i := i + 1;
j := 0;
while j <= n and r = true do
begin
j := j + 1;
if aa[i, j] = 0 then
r := false;
end;
end;
writeln(i, ' ', j);
end.
A b c s
3 5 3 3
7 10 2 5
15 4 18 23
1 1 -1 22
6 0 12 34
0 10 30 64
21 8 18 82
7 14 14 96
8 2 10 106 - конец цикла
0 9 27 133
15 4 18 18
5 16 28 46
-4 6 34 80
1 -1 5 85
17 5 19 104 -конец цикла
0 6 18 122
9 1 15 137
-4 5 31 168
6 10 6 174
21 42 42 216
#include <iostream>
#include <cstdlib>
using namespace std;
int main(){
int a[n][m];
int minA[m];
int min;
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
a[i][j] = rand()% 50 - 10;
cout<<a[i][j]<<" ";
}
cout<<endl;
}
cout <<"Min:"<<endl;
for(int j = 0; j < m; j++){
min = 9999;
for(int i = 0; i < n; i++){
if((a[i][j] > 0) && (a[i][j] < min))
min = a[i][j];
}
minA[j] = min;
cout<<minA[j]<<" ";
}
int max = minA[0];
for(int j = 1; j < m; j++){
if(max < minA[j])
max = minA[j];
}
cout<<endl<<"Max = "<<max;
return 0;
}
Мой совет - запомнить как основную формулу для суммы первых n натуральных чисел
Доказывается она так: записываем те же числа в обратном порядке:
и складываем эти равенства таким образом: первое слагаемое с первым, второе со вторым и т.д. Поскольку в первой сумме каждое следующее слагаемое на 1 больше предыдущего, а во второй на 1 меньше предыдущего, мы получим сумму одинаковых чисел:
слагаемых всего n, поэтому
Теперь несложно найти сумму первых n четных чисел. Можно провести подобную выкладку, а можно свести новую задачу к предыдущей:
Ответ: