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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Название темы включает слова - "Помогите", "Спасите", "Срочно"
Название темы не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте >>>правила <<< и заново правильно создайте тему.
 
Опции темы
Старый 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 вне форума  
Закрытая тема

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


11:47.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.