Найти минимум среди сумм элементов диагоналей, параллельных побочной диагонали матрицы - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д