Найти строку матрицы с наибольшей и наименьшей суммой элементов - C (СИ) (73801)

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

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

Дана прямоугольная матрица. Найти строку с наибольшей и наименьшей суммой элементов. Вывести на печать найден*ные строки: и суммы их элементов.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#define n 4
#define m 4
 
void main()
{
int sum[n],mas[n][m],i,j,max=0,min=0,maxi,mini;
randomize();
for(i=0;i<n;i++)
{
sum[i]=0;
for(j=0;j<m;j++)
{
mas[i][j]=random(11);
printf("%d\t",mas[i][j]);
sum[i]+=mas[i][j];
}
printf("\n");
}
printf("Row sums:\n");
for(i=0;i<n;i++)
{
printf("%d\t",sum[i]);
if(sum[i]>max)
{
maxi=sum[i];
printf("%d is MAX - %d\n",i,maxi);
}
if(sum[i]<min)
{
mini=sum[i];
printf("%d is MIN - %d\n",i,mini);
}
}
getch();
}
Ошибка состоит в том, что оно отображает ВСЕ строки и во всех говорит, что они являются максимальными.

Решение задачи: «Найти строку матрицы с наибольшей и наименьшей суммой элементов»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int
sum(int *v, int n)
{
    int i, s;
 
    s = 0;
    for (i = 0; i < n; i++)
        s += v[i];
 
    return s;
}
 
#define M 4
#define N 4
#define FMT "%s row=%d sum=%d\n"
 
int
main(void)
{
    int i, j, s, smin, smax, imin, imax, a[M][N];
 
    srand(time(NULL));
    for (i = 0; i < M; i++)
        for (j = 0; j < N; j++)
            a[i][j] = rand() % (M*N);
 
    for (i = 0; i < M; i++) {
        for (j = 0; j < N; j++)
            printf("%2d\t", a[i][j]);
        printf("\n");
    }
 
    imin = imax = 0;
    smin = smax = sum(a[0], M);
    for (i = 1; i < N; i++) {
        s = sum(a[i], M);
        if (s < smin) {
            smin = s;
            imin = i;
        }
        if (s > smax) {
            smax = s;
            imax = i;
        }
    }
 
    printf(FMT, "min", imin, smin);
    printf(FMT, "max", imax, smax);
 
    return 0;
}

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


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

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

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