Архив кончается — плохо, есть некоторые штуки из текущих наработок. Задача звучит так:
Написать программу, которая принимает с клавиатуры число N, задает квадратную матрицу размера N на N, со-стоящую из целых случайных чисел и выводит ее. Затем необходимо определить номер столбца, элемент в котором максимален среди всех столбцов.
Задачка на массивы. Сразу даю код, а потом его объясню:
[cpp]
#include <stdio.h>
#include <tchar.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int n;
int a [255][255];
scanf(«%d», &n);
srand(time(NULL));
for (int i = 0; i<n; i++)
{
printf(«\n»);
for (int j = 0; j < n; j++)
{
a[i][j] = rand() % (100+1) + 1;
printf(«%d «, a[i][j]);
}
}
int max = 0, jmax = 0;
printf(«\n»);
for (int i = 0; i<n; i++)
{
for (int j = 0; j < n; j++)
{
if (a[i][j] > max)
{
max = a[i][j];
jmax = j;
}
}
}
printf(«%d — %d», jmax+1, max);
return 0;
}
[/cpp]
Примечание: Код немного поправил, что бы не было зависимости от stdafx.h
Что здесь происходит:
[cpp]
int n;
int a [255][255];
scanf(«%d», &n);
srand(time(NULL));
for (int i = 0; i<n; i++)
{
printf(«\n»);
for (int j = 0; j < n; j++)
{
a[i][j] = rand() % (100+1) + 1;
printf(«%d «, a[i][j]);
}
}
[/cpp]
Здесь объявляются необходимые переменные и далее массив инициализируется (заполняется) случайными числами от 1 до 101 (почему — не знаю :)). Далее он тут же выводится на консоль.
[cpp]
int max = 0, jmax = 0;
printf(«\n»);
for (int i = 0; i<n; i++)
{
for (int j = 0; j < n; j++)
{
if (a[i][j] > max)
{
max = a[i][j];
jmax = j;
}
}
}
printf(«%d — %d», jmax+1, max);
[/cpp]
Вот тут все основные действия и самое интересное.
переменные:
jmax нужна для хранения индекса столбца с наибольшим значением, max нужна для хранения значения самого числа. Массив у меня целочисленный, поэтому у меня и переменные целочисленные.
Далее по ходу программы описаны 2 цикла, вложенных друг в друга, стандартные для обработки массивов. Внутри цикла проверяется уловие
[cpp]
if (a[i][j] > max)
{
max = a[i][j];
jmax = j;
}
[/cpp]
Если элемент больше максимума, то максимум принимает значение этого элемента и в j записывается новый номер — тот где стоит этот новонайденый элемент. Пройдя по всем можно найти самый большой из них.