Консультация № 109480
15.11.2007, 06:24
0.00 руб.
0 1 1
Привет всем!
Не могу понять, почему программа останавливается и не выполняется до конца... Может в синтаксисе вывода матрицы на экран ошибки? Среда - С++ Borland 3.1
Спасибо всем, кто ответит!

Приложение:
#include <stdio.h>#include <conio.h>#define n 100void main (){int i, t, j, s, k, l; float a[n][n], b[n][n];printf ("Vvedite razmer:\n");scanf ("%d",&t);printf("Vvedite matricy:\n");for (i=0;i<t;i++) {for (j=0;j<t;j++) {scanf ("%f",&a[i][j]);};};j=j-1;i=1;for (b[1][t]=a[1][t]; j!=0; j--) {if (a[i][j]>a[i][j+1]) b[i][j]=a[i][j+1]; else b[i][j]=a[i][j];j=j-1;};i=2;for (j=t; i<=t;i++){if (a[i][j]>a[i-1][j]) b[i][j]=a[i-1][j]; else b[i][j]=a[i][j];i--;}s=j;for (i=2; i<=n; i++) {for (j=j-1;j>0; j--) {k=j+1; l=i-1; if (a[i][j]<=a[l][j] && a[i][j]<=a[i][k]) b[i][j]=a[i][j]; else {if (a[l][j]>a[i][k]) b[i][j]=a[i][k]; else b[i][j]=a[l][j];}; }; for (j=s; i<=t; i++) {k=j+1; l=i-1; if (a[i][j]<=a[l][j]&&a[i][j]<=a[i][k]) b[i][j]=a[i][j]; else {if (a[l][j]>a[i][k]) b[i][j]=a[i][k]; else b[i][j]=a[l][j];}; };i=t-s+1;};j=0;while (j<t) {i=0; while (i<t) { printf ("\t %3/1f", b[i][j]); i++;} j++;}getch ();};

Обсуждение

Неизвестный
15.11.2007, 09:17
общий
это ответ
Здравствуйте, LexXx!
В самом начале вашей программы есть цикл
Дрпустим я ввел матрицу размера 2
j=j-1;//тогда j=1
i=1;
for (b[1][t]=a[1][t]; j!=0; j--)//после выполнения тела цикла jуменьшится на 1
{
if (a[i][j]>a[i][j+1]) b[i][j]=a[i][j+1];
else b[i][j]=a[i][j];
j=j-1;//да еще здесь вы уменьшаете на 1. j становится равным -1 и 0 никогда не будет равно
};
Форма ответа