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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2014, 14:58   #1
-Андрей-
Пользователь
 
Регистрация: 10.05.2014
Сообщений: 39
По умолчанию Опpеделить значения целочисленного массива.(C++)

Подскажите пожалуйста ошибки.

Даны вещественные массивы B[5][4].Опpеделить значения целочисленного массива D[5] по следующему правилу: D[i]=1, если сумма элементов i‐й строки больше 0,
D[i]=0 в пpотивном случае.
Значение переменной i изменяется от 0 до 4

Код:
#include <stdio.h>
 
int main(int argc, char * argv [])
{
    const int N = 4, M = 5;
    double B[N][M], D[N];
    for(int s = 0; s < N; s++) {
        for(int st = 0; st < M; st++) {
            printf("B[%d][%d]: ", s + 1, st + 1);
            if(scanf_s("%lf", & B[s][st]) != 1) {
                fprintf(stderr, "Error! Not number for write");
                return -1;
            }
        }
    }
 
    for(int i = 0; i < 4; i++) {
        if(B[i][5] > 0) {
            D[i] = 1;
        } else { D[i] = 0; }
    }
 
    printf("------------------------\n");
    for(int j = 0; j < N; j++) {
        printf("D[%d]: %g\n", j + 1, D[j]);
        for(int m = 0; m < M; m++) {
            printf("B[%d][%d]: %g\n", j + 1, m + 1, B[j][m]);
        }
    }
 
    return 0;
-Андрей- вне форума Ответить с цитированием
Старый 10.05.2014, 15:17   #2
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

И что Вас смущает? Код компилируется, запускается?
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 10.05.2014, 15:27   #3
-Андрей-
Пользователь
 
Регистрация: 10.05.2014
Сообщений: 39
По умолчанию

Код компилируется, запускается, но не выводит результат ((
-Андрей- вне форума Ответить с цитированием
Старый 10.05.2014, 16:58   #4
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

А какой результат должен быть?
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 10.05.2014, 17:07   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,322
По умолчанию

Код похож на правду, только нету в матрице элементов B[i][5]. Второй индекс должен быть в диапазоне [0..4].
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 10.05.2014, 17:23   #6
-Андрей-
Пользователь
 
Регистрация: 10.05.2014
Сообщений: 39
По умолчанию

В данной задаче необходимо написать программу, выполняющую следующие действия:
1.Ввод исходных массивов C и D.
2.Вывод на экран исходных массивов.
3.Преобразование массивов.
4.Вывод на экран измененных массивов.
-Андрей- вне форума Ответить с цитированием
Старый 10.05.2014, 17:26   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,322
По умолчанию

Это условие отлично от того, что написано в первом сообщении.
Кстати, получение значений массива D неверно, так как нужно считать сумму по строке, а не пройтись по несуществующему 5 столбцу.
Код:
for(int i = 0; i < N; ++i) {
    double sum = 0;
    for(int j = 0; j < M; ++j)
        sum += B[i][j];
    D[i] = (sum > 0);
}
И объявить массив D целого типа вместо вещественного (int D[N]; ).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 10.05.2014 в 17:32.
BDA вне форума Ответить с цитированием
Старый 10.05.2014, 22:02   #8
-Андрей-
Пользователь
 
Регистрация: 10.05.2014
Сообщений: 39
По умолчанию

Так должно быть?
Код:
#include <stdio.h>
 
int main(int argc, char * argv [])
{
    const int N = 5, M = 6;
	int D[N]; 
    double C[N][M];
    for(int s = 0; s < N; s++) {
        for(int st = 0; st < M; st++) {
            printf("C[%d][%d]: ", s + 1, st + 1);
            if(scanf_s("%lf", & C[s][st]) != 1) {
                fprintf(stderr, "Error! Not number for write");
                return -1;
            }
        }
    }
 
    for(int i = 0; i < N; ++i) {
    double sum = 0;
    for(int j = 0; j < M; ++j)
        sum += С[i][j];
    D[i] = (sum > 0);
    }
 
    printf("------------------------\n");
    for(int j = 0; j < N; j++) {
        printf("D[%d]: %d\n", j + 1, D[j]);
        for(int m = 0; m < M; m++) {
            printf("C[%d][%d]: %g\n", j + 1, m + 1, C[j][m]);
        }
    }
 
    return 0;
}

Последний раз редактировалось -Андрей-; 10.05.2014 в 22:16.
-Андрей- вне форума Ответить с цитированием
Старый 10.05.2014, 22:10   #9
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,322
По умолчанию

Код:
sum += C[i][j];
...
printf("D[%d]: %d\n", j + 1, D[j]);
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 10.05.2014, 22:26   #10
-Андрей-
Пользователь
 
Регистрация: 10.05.2014
Сообщений: 39
По умолчанию

Подправил.
Все равно, что то не хочет работать(
После нажатия Enter, программа закрывается
Изображения
Тип файла: jpg Безымянный.jpg (28.2 Кб, 134 просмотров)
-Андрей- вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
копирование целочисленного массива lunatik_92 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 14.05.2012 16:17
Копирование целочисленного массива. lunatik_92 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 06.05.2012 08:21
По массивам, SOS! из целочисленного массива удалить из массива элементы, встречающиеся менее 3-х раз prelest' Паскаль, Turbo Pascal, PascalABC.NET 1 23.05.2011 22:37
Формирование двумерного целочисленного массива (матрицы) размером N х M zergon Помощь студентам 4 02.04.2010 16:45