Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы
Старый 14.05.2010, 20:58   #1
<<Katushka>>
Пользователь
 
Регистрация: 09.05.2010
Сообщений: 12
По умолчанию где-то ошибаюсь, а где не пойму!укажите ошибку

Дана целочисленная квадратная матрица. Найти минимальную сумму среди сумм элементов главной и побочной диагоналей матрицы.

Вот мой код, но программа выдает какую-то фигню((

PHP код:
#include<stdio.h>
#include<math.h>
int main() {
    
int i,j,n,r,s1,s2,mins,a[20][20];
    
printf("\nn? "); 
    
scanf("%d",&n);
    for(
i=0;i<n;i++)
        for(
j=0;j<n;j++){
            
printf("a[%d][%d]? ",i+1,j+1);
            
scanf("%d",&r);
            
a[i][j]=r;
        }
        
s1=0;
        for(
i=1;i<n;i++)
            for(
j=1;j<n;j++) {
                if(
i==j
                    
s1=s1+r;
                }
            
printf("\ns1=%8d\n",s1);

            
s2=0;
            for(
i=1;i<n;i++)
                for(
j=1;j<n;j++) {
                    if((
i+j)==(n+1)) {
                        
s2=s2+r;
                    }
                    
printf("\ns2=%8d\n",s2);
                }
                if(
s1<s2
                    
s1=mins;
                    else 
                        
s2=mins;
                    
                
                
printf("\nmins=%8d\n",mins); 
                
getchar();
                
getchar();

<<Katushka>> вне форума
Старый 14.05.2010, 21:19   #2
Aronax
Пользователь
 
Регистрация: 03.07.2009
Сообщений: 45
По умолчанию

1 цикл по моему не верный там нужно суммировать не r а а[i][j] и для 2го цикла также
Aronax вне форума
Старый 15.05.2010, 10:41   #3
miftayka
Пользователь
 
Регистрация: 09.05.2010
Сообщений: 17
По умолчанию

в r хранится последнее введенное число, а не текущий элемент матрицы.
Можно чуть по-другому:
сумма главной:
Код:
s1=0;
for (int i=0; i<n; i++)
  s1+=a[i][i];
сумма побочной:
Код:
s2=0;
for (int i=0; i<n; i++)
   s2+=a[i][n-i-1];
И в нахождении минимального надо
Код:
if(s1<s2) 
  mins=s1;
else 
  mins=s2;
а не присваивать найденным суммам неинициализированную переменную mins.
miftayka вне форума
Закрытая тема

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не пойму где ошибка Айдар Работа с сетью в Delphi 1 17.04.2010 17:20
не пойму где ошибка C-Jay Общие вопросы C/C++ 1 03.01.2010 01:45
где сдесь туплю не пойму Doget Помощь студентам 2 04.02.2009 08:46
idSMTP не пойму где ошибка JRcoker Работа с сетью в Delphi 5 07.10.2008 13:10
Никак не пойму где крыса затаилась! Подскажите! Хs-You Общие вопросы Delphi 12 19.08.2007 15:28


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS