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

Вычисление суммы элементов массива по столбцам - C++

Восстановить пароль Регистрация
 
Lotles
 Аватар для Lotles
1 / 1 / 0
Регистрация: 29.12.2009
Сообщений: 167
01.01.2011, 22:17     Вычисление суммы элементов массива по столбцам #1
Почему на этой строке
C++
1
    scanf("%i",&a[i][j]);
программа зависает ?
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
//Вычисление суммы элементов массива по столбцам
#include "stdafx.h"
#include "conio.h"
using namespace std;
#define ROW 3
#define COL 5
void main(){
int a[ROW][COL];
int s[COL];
int i,j;
 
printf("Vvedite massiv);
printf("posle vvode elementov kagdoy stroki iz %i celih chisel ", COL);
printf("nagmite Enter\n");
for(i=0;i<ROW;i++){
    printf("\n-->");
for(j=0;j<COL;j++)
    scanf("%i",&a[i][j]);
}
 
printf("Vvedenniy massiv\n");
for(i-=0;i<ROW;i++){
    for(j=0;j<COL;j++)
        printf("%i",a[i][j]);
    printf("\n");
}
 
for(i=0;i<COL;i++)
s[i]=0;
 
for(j=0;j<COL;j++)
for(i=0;i<ROW;i++)
s[j]+=a[i][j];
 
for(i=0;i<COL;i++)
printf("%i", s[i]);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.01.2011, 22:17     Вычисление суммы элементов массива по столбцам
Посмотрите здесь:

В чем ошибки (вычисление суммы элементов массива)? C++
C++ Вычисление суммы элементов строк n-мерного массива
C++ вычисление суммы элементов массива по строкам
C++ Вычисление суммы и определение номеров положительных элементов массива
C++ Ввод по строкам с клавиатуры двумерного массива и вычисление суммы его элементов по четным столбцам
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
01.01.2011, 22:21     Вычисление суммы элементов массива по столбцам #2
У меня ничего не виснет. Только если вы пытаетесь запустить именно такой код, то да, ничего не выйдет, в 12 строке не хватает закрывающей кавычки. И зачем вам здесь using namespace std;?
Lotles
 Аватар для Lotles
1 / 1 / 0
Регистрация: 29.12.2009
Сообщений: 167
01.01.2011, 22:22  [ТС]     Вычисление суммы элементов массива по столбцам #3
Ну я по привычке написал !
Все равно виснет
Наверно от компилятора зависит
Разные компиляторы наверно по-разному обрабатывают scanf
У меня Microsoft Visual Studio .NET 2003
Минич
 Аватар для Минич
66 / 66 / 3
Регистрация: 26.11.2010
Сообщений: 123
01.01.2011, 23:13     Вычисление суммы элементов массива по столбцам #4
Цитата Сообщение от Lotles Посмотреть сообщение
Все равно виснет
Она не висла, она работала как Вы написали, вот теперь попробуйте, возможно этого вы ожидали
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
39
40
41
//Вычисление суммы элементов массива по столбцам
#include <cstdio>
#include <iostream>
 
#define ROW 3
#define COL 5
 
void main()
{
    setlocale(LC_ALL, "Russian");
 
    int a[ROW][COL];
    int s[COL];
    int i,j;
    
    printf("Введите массив");
    printf("после ввода элементов каждой строки из %i целых чисел ", COL);
    printf("нажимите Enter\n");
    
    for(i = 0; i < ROW; i++)
        for(j = 0; j < COL; j++) {
            printf("-->");
            scanf("%i",&a[i][j]);
        }
    
    printf("Введенный массив\n");
    for(i = 0; i < ROW; i++) {
        for(j = 0; j < COL; j++)
            printf("%3d", a[i][j]);
        printf("\n");
    }
    
    for (i = 0; i < COL; i++)
        s[i] = 0;
    for (j = 0; j < COL; j++)
        for (i = 0; i < ROW; i++)
            s[j] += a[i][j];
    for (i = 0; i < COL; i++)
        printf("%5d", s[i]);
    system("pause");
}
Lotles
 Аватар для Lotles
1 / 1 / 0
Регистрация: 29.12.2009
Сообщений: 167
01.01.2011, 23:30  [ТС]     Вычисление суммы элементов массива по столбцам #5
Прога не виснет, но работает как то не понятно
Я сильно не разбирался 2 часа ночи мне завтра на учебу, получается что
в моем случае
C++
1
2
3
printf("\n-->");
for(j=0;j<COL;j++)
    scanf("%i",&a[i][j]);// Зависает
C++
1
2
printf("-->");// Не виснет
scanf("%i",&a[i][j]);
Почему, ведь входной поток не куда не девался?
Почему тут
C++
1
2
3
printf("\n-->");
for(j=0;j<COL;j++)
    scanf("%i",&a[i][j]);
не может a[i][j] присвоить значение ?
Минич
 Аватар для Минич
66 / 66 / 3
Регистрация: 26.11.2010
Сообщений: 123
02.01.2011, 00:18     Вычисление суммы элементов массива по столбцам #6
оно присваивается вот так
Миниатюры
Вычисление суммы элементов массива по столбцам  
Yandex
Объявления
02.01.2011, 00:18     Вычисление суммы элементов массива по столбцам
Ответ Создать тему
Опции темы

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