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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2010, 23:26   #1
zealot74
Новичок
Джуниор
 
Регистрация: 18.01.2010
Сообщений: 2
Вопрос Вычислить сумму элементов каждой строки до первого отрицательного

Здравствуйте.

Есть такая задача: Дана матрица N строк, М столбцов. Вычислить сумму элементов каждой строки до первого отрицательного.

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

Подскажите пожалуста как добиться того чтобы элементы матрицы считались до первого отрицательного во всей матрице?

вот текст программы
Код:
#include <conio.h>
#include <windows.h>
#include <stdio.h>

int main()
{ SetConsoleCP(1251);
SetConsoleOutputCP(1251);
randomize();
int q,i,j,n,m,a[50][50],pervotr=0, pervo=0; float b[50];

printf("\nВведите количество строк N "); scanf("%d", &n);
printf("\nВведите количество столбцов M "); scanf("%d", &m);
printf("\n");
for(i=0; i < n ; i++){
for(j=0; j < m ; j++){
a[i][j]=random(11)-5;
printf("%3d",a[i][j]);
}printf("\n");}

for(j=0; j < m ; j++){
for(i=0; i < n ; i++){
if (a[i][j] < 0) goto get_out;
b[i]+=a[i][j];} }

get_out:; 

printf("\n");
for(i=0;i<n;i++)printf("%3.3f",b[i]);
getch();}
Вот скрин красным показано то что не считается а зелёным то что считается
Изображения
Тип файла: jpg файл.JPG (13.6 Кб, 131 просмотров)

Последний раз редактировалось Stilet; 19.01.2010 в 10:25.
zealot74 вне форума Ответить с цитированием
Старый 18.01.2010, 23:58   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

После первого же срабатывания if (a[i][j] < 0) в программе вы выходите из обоих циклов, поэтому если хоть в одной строке попался отрицательный элемент, то все последующие строки программа вообще не будет считать.
Это не говоря о том, что использование goto - дурной тон. Воспользуйтесь лучше break или continue для выхода из внутреннего цикла - цикла для одной строки. Выходить из второго вам не надо.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 19.01.2010, 00:05   #3
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

...и при этом внутренний цикл должен быть по столбцам, а внешний - по строкам.
Vago вне форума Ответить с цитированием
Старый 19.01.2010, 09:13   #4
zealot74
Новичок
Джуниор
 
Регистрация: 18.01.2010
Сообщений: 2
По умолчанию

спасибо прогу сделал но вот так

Цитата:
if(a[i][j]>=0){
b[i]+=a[i][j];
}
else {break;}
}
}
вот теперь как сделать чтобы читал исходные данные из файла и записывал результат в файл?
zealot74 вне форума Ответить с цитированием
Старый 19.01.2010, 10:29   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну если навскидку то:
Код:
   FILE *stream;
   stream = fopen("DUMMY.FIL", "r");
   int i;
...
   while (fscanf(stdin, "%d", &i)){
    //считали в i из файла целое
    }
Все это в примерах посмотри в хелпе.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Для первого столбца и первой строки вычислить произведение положительных элементов. Katie Помощь студентам 4 13.01.2010 02:21
Вычислить и запомнить суммы положительных элементов каждой строки матриц Babur4iK Помощь студентам 8 18.11.2009 13:56
В одномерном массиве, состоящем из n вещественных элементов, вычислить сумму элементов массива HazelHen Общие вопросы C/C++ 2 29.03.2009 15:16
функция подсчета суммы элементов после первого отрицательного nikzntu Общие вопросы C/C++ 0 13.01.2009 21:40
Вычислить и запомнить суммы положительных элементов каждой строки матрицы kiko Паскаль, Turbo Pascal, PascalABC.NET 1 13.12.2008 17:32