Помощь - Поиск - Пользователи - Календарь
Полная версия: Масив в С
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
_Hanter_
Задана действительная квадратная матрица. В строках с отрицательным элементом на главной диагонали найти сумму всех элементов.

#include <math.h>
#include <stdio.h>
main ()
{int i,j,n,m,s=0,A[10] [10];
printf("введите розмер масива:");
scanf ("%i",&n);
printf("введите масив:\n");
for(i=0;i<n;i++);
for(j=0;j<n;j++);
scanf("%i",&A[i][j]);
printf("Исходный масив:\n");
for(i=0;i<n;i++);
for(j=0;j<n;j++);
printf("%i",&A[i][j]);
for(i=0;i<n;i++);
for(j=0;j<n;j++);
{if (i-j=0 && A[i][1]<0) then s=s+A[i][1];}
printf("%i",s);}
IUnknown
Цитата
Что я зделал не так???
Лишние точки с запятой (не надо после операторов цикла добавлять точку с запятой. Этим ты просто завершаешь цикл, и он не делает ничего полезного. [вброс]А вот в нормальных языках такое даже не компилируется...[/вброс]), неправильный вывод (при вводе значений нужно брать адрес переменной. При выводе должно передаваться значение, а не адрес), ну и с самим алгоритмом проблемы: чтобы проверить, в каких строках на главной диагонали стоит отрицательное число - не надо делать вложенные циклы. Вполне достаточно одного.

Ах, да, знак "равно" в Сях - это "==", одиночный символ "=" - это присваивание...

В общем, исправленная программа выглядит так:
#include <math.h>
#include <stdio.h>
int main ()
{
int i,j,n,s=0,A[10] [10];
printf("введите розмер масива:");
scanf ("%i",&n);
printf("введите масив:\n");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%i",&A[i][j]);

printf("Исходный масив:\n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%4d",A[i][j]);
printf("\n");
}

for(i=0;i<n;i++)
{
if (A[i][i]<0)
{
for(j = 0; j < n; j++)
s=s+A[i][j];
}
}
printf("Сумма = %d", s);
return 0;
}
_Hanter_
Спасибо!!!!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.