Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 14.05.2010, 21:58   #1
<<Katushka>>
Пользователь
 
Регистрация: 10.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, 22:19   #2
Aronax
Пользователь
 
Регистрация: 03.07.2009
Сообщений: 45
По умолчанию

1 цикл по моему не верный там нужно суммировать не r а а[i][j] и для 2го цикла также
Aronax вне форума
Старый 15.05.2010, 11: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 вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не пойму где ошибка Айдар Работа с сетью в Delphi 1 17.04.2010 18: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 14:10
Никак не пойму где крыса затаилась! Подскажите! Хs-You Общие вопросы Delphi 12 19.08.2007 16:28