Таблица футбольного чемпионата задана квадратной матрицей - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Таблица футбольного чемпионата задана квадратной матрицей порядка n, в которой все элементы, принадлежащие главной диагонали равны 0, а каждый элемент, не принадлежащий главной диагонали, равен 2, 1 или 0 (число очков набранных в игре: 2 – выигрыш, 1 – ничья, 0 – проигрыш). а) найти число команд, имеющих больше побед, чем поражений; б) определить номера команд, прошедших чемпионат без поражений; в) выяснить, имеется ли хотя бы одна команда, выигравшая более половины игр. помогите, очень нужно...на языке Си
....очень надо( зашиваюсь...

Решение задачи: «Таблица футбольного чемпионата задана квадратной матрицей»

textual
Листинг программы
int col=0, *b=new int[n], nn=0, fl=0, tmp, tmp1, tmp2, i, j;
for(i=0; i<n; i++)
{
    tmp=0;  tmp1=1; tmp2=0;
    for(j=0; j<n; j++)
        if(i!=j)
        {
            if(a[i][j]==2)
            {
                tmp++;
                tmp2++;
            }
            if(a[i][j]==0)
            {
                tmp--;
                tmp1=0;
            }
        }
    if(tmp>0)
        col++;
    if(tmp1==1)
        b[nn++]=i;
    if(tmp2*2>n)
        fl=1;
}
printf("a) %d\n", col);
printf("b) ");
for(i=0; i<nn-1; i++)
    printf("%d, ", b[i]+1);
if(nn>0)
    printf("%d\n", b[nn-1]+1);
else
    printf("\n");
if(fl==1)
    printf("c) Yes\n");
else
    printf("c) No\n");

Объяснение кода листинга программы

Данный код решает задачу определения количества заполненных строк и столбцов, а также наличия положительных и отрицательных диагоналей в квадратной матрице, представленной в виде двумерного массива a размером n на n. Код использует два вложенных цикла, первый из которых перебирает строки матрицы, а второй - столбцы. В каждой итерации внутреннего цикла проверяется значение элемента матрицы a[i][j]. Если оно равно 2, то увеличивается счетчик tmp и tmp2. Если значение равно 0, то уменьшается счетчик tmp и устанавливается флаг tmp1 равным 0. После завершения циклов проверяются значения счетчиков tmp, tmp1 и tmp2. Если tmp больше 0, то увеличивается счетчик col. Если tmp1 равно 1, то добавляется значение i в массив b с индексом nn и увеличивается счетчик nn. Если tmp2 умноженное на 2 больше n, то устанавливается флаг fl равным 1. После выполнения всех проверок выводится количество заполненных строк (значение переменной col), значения массива b через запятую (сначала с 1-го элемента, а затем с 0-го) и, при необходимости, сообщение о наличии положительных и отрицательных диагоналей.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5
Похожие ответы