Форум программистов, компьютерный форум CyberForum.ru

Код написан,нужна небольшая корректировка.Массивы - C++

Восстановить пароль Регистрация
 
Sivilan
6 / 6 / 0
Регистрация: 17.03.2013
Сообщений: 66
21.05.2013, 20:20     Код написан,нужна небольшая корректировка.Массивы #1
Здравствуйте,задание:: Задана матрица размером NxM. Получить массив B, присвоив его k-му элементу значение 0, если сумма элементов k-го столбца матрицы равна нулю, и значение 1  в противном случае.У меня в ответе получается заоблачное число 468....и.т.д............. или компилятор выкидывает при большем размере(не отвечает),в чем проблема
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
 
int main () {
 
    int m,n,i,j,s;
        printf ("Vvedite razmernost matricu NxM\n");
            printf("Vvedite N=");
                scanf("%d",&n);
            printf("Vvedite M=");
                scanf("%d",&m);
    int **mas;
        mas=new int *[n];
            for (i=0;i<n;i++)
                mas[i]=new int [m];
 
printf ("Vvedite elementy matricu: \n");
     {
    for (i=0; i<n; i++)
        for (j=0; j<m; j++)
         scanf ("%d", &mas[i][j]);
     }
int *mason;
mason=new int [m];
for (i=0;i<n;i++) {s=0;
for (j=0;j<m;j++) s=s+mas[j][i];
if (s==0) mason[j]=0;
else mason[j]=1;}
printf("otvet=");
for (j=0;j<m;j++)
printf ("%d",mason[j]);
for (int k=0;k<n;k++)
delete [] mas[k];
 delete [] mas;
    delete [] mason;
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2013, 20:20     Код написан,нужна небольшая корректировка.Массивы
Посмотрите здесь:

C++ Структуры, С++. Нужна небольшая подсказка
C++ Нужна небольшая помощь начинающему
Код написан в Dev C. Не работает в Visual. Как нужно переделать код? C++
правильно ли написан код в с++? C++
Код написан,нужна небольшая корректировка.Массивы C++
Неправильно написан код C++
Небольшая корректировка вывода в программе C++
Правильно ли написан код C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MyMind
24 / 24 / 7
Регистрация: 14.05.2013
Сообщений: 68
21.05.2013, 20:53     Код написан,нужна небольшая корректировка.Массивы #2
у вас ошибка тут:
C++
1
2
3
4
for (i=0;i<n;i++) {s=0;
for (j=0;j<m;j++) s=s+mas[j][i];
if (s==0) mason[j]=0;
else mason[j]=1;}
надо писать:
C++
1
2
3
4
5
6
7
for (i=0;i<n;i++) {
    s=0;
    for (j=0;j<m;j++) 
        s=s+mas[i][j];
    if (s==0) mason[i]=0;
    else mason[i]=1;
}
вы перепутали i и j местами, когда искали сумму. и поэтому в случае с прямоугольной матрицей у вас будет ошибка.
Sivilan
6 / 6 / 0
Регистрация: 17.03.2013
Сообщений: 66
21.05.2013, 21:11  [ТС]     Код написан,нужна небольшая корректировка.Массивы #3
но мне нужно складывать элементы столбца

Добавлено через 6 минут
Цитата Сообщение от MyMind Посмотреть сообщение
у вас ошибка тут:
C++
1
2
3
4
for (i=0;i<n;i++) {s=0;
for (j=0;j<m;j++) s=s+mas[j][i];
if (s==0) mason[j]=0;
else mason[j]=1;}
надо писать:
C++
1
2
3
4
5
6
7
for (i=0;i<n;i++) {
    s=0;
    for (j=0;j<m;j++) 
        s=s+mas[i][j];
    if (s==0) mason[i]=0;
    else mason[i]=1;
}
вы перепутали i и j местами, когда искали сумму. и поэтому в случае с прямоугольной матрицей у вас будет ошибка.
после ввода не квадратной матрицы ответ получается что-то вроде 111143566778899765445
Yandex
Объявления
21.05.2013, 21:11     Код написан,нужна небольшая корректировка.Массивы
Ответ Создать тему
Опции темы

Текущее время: 11:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru