Найти минимум среди сумм элементов диагоналей, параллельных побочной диагонали матрицы - C (СИ)
Формулировка задачи:
Здраствуйте.Помогите пожалуйста с задачей на си.Найти минимум среди сумм элементов диагоналей, параллельных побочной диагонали матрицы. У меня получаеться побочная равна [i,n-i-1], хотя на сайтах написано [i,n-i+1](почему так?). И как делать сдвиги (паралельные диагонали)? Помогите пожалуйста с кодом.
Скажите пожалуйста, почему проблема с вводом массива.
Не хочет воспринимать вещественный тип float, хотя с интами норм работает
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
int main() {
clrscr();
int nrow, ncol;
printf("nrow= "); scanf("%d", &nrow);
printf("ncol= "); scanf("%d", &ncol);
int i,j;
float **a=new float *[nrow];
for (i=0; i<nrow; i++)
a[i] = new float [ncol] ;
for (i=0; i<nrow; i++)
for (j=0; j<ncol; j++)
scanf("%7.2f", &a[i][j]);
for(i=0; i<nrow; i++) {
for (j=0; j<ncol; j++)
printf("%7.2f", a[i][j]);
printf("\n");
}
printf("\n \n Minimum sredi summ elementov diagonalej,parallelnyh pobochnoy diagonali matricy: ");
float summin=a[0][0], t;
for(i=1; i<ncol-1; i++) {
t=0.00;
for(j=0; j<=i && j<nrow; j++)
t+=a[j][i-j];
if(t<summin)
summin=t;
}
for(i=1; i<nrow; i++) {
t=0.00;
for(j=0; j<nrow-i && j<ncol; j++)
t+=a[i+j][ncol-1-j];
if(t<summin)
summin=t;
}
printf("%7.2f\n", summin);
getch();
delete a;
return 0;
}Решение задачи: «Найти минимум среди сумм элементов диагоналей, параллельных побочной диагонали матрицы»
textual
Листинг программы
for (int i = 0; i < nrow; i++) delete [] a[i]; delete[] a;
Объяснение кода листинга программы
- Объявлен массив a типа double размером nrow x ncol.
- В цикле for, итерирующемся от 0 до nrow-1, выполняется операция delete[] для каждого подмассива a[i].
- В конце цикла выполняется операция delete[] для массива a.