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

Программа не работает как надо. Задача: Вывести сумму всех элементов массива, кратных данному числу К (вводится с клавиатуры) - C++

Восстановить пароль Регистрация
 
Stiva
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 2
05.02.2014, 18:34     Программа не работает как надо. Задача: Вывести сумму всех элементов массива, кратных данному числу К (вводится с клавиатуры) #1
Вот мой код. Суммарное число выводит слишком большее, а после завершения программы ошибку:"Run-Time Check Failure #2 - Stack around the variable 'numb' was corrupted." или подобную, только с другим массивом: "Run-Time Check Failure #2 - Stack around the variable 'mass' was corrupted." .С массивом mass еще проблемы есть..
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
#include <iostream>
using namespace std;
int main()
{
    int K;
    cout << "Vvedite chislo K: ";
    cin >> K;
    int numb[100];
    for (int a = 0; a <= 100; a++)
    {
        numb[a] = a;
    }
    int mass[100];  //Вот я сделал неправильно. Мне нужен массив, который расширяется по мере заполнения
    for (int j = 0; j <= 100; j++)
    {
        if (numb[j] % K == 0)
        {
            mass[j] = numb[j];
        }
    }
    int sum = 0;
    for (int i = 0; i<=100; i++)
    {
        sum = sum + mass[i];
    }
    cout << "Summa = " << sum;
    system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.02.2014, 18:34     Программа не работает как надо. Задача: Вывести сумму всех элементов массива, кратных данному числу К (вводится с клавиатуры)
Посмотрите здесь:

Найти сумму всех элементов массива, кратных 4 C++
Найти сумму всех элементов массива, кратных 4 C++
Найти сумму всех элементов, кратных заданному числу C++
C++ Вычислить сумму квадратов всех элементов заданного массива A(N), за исключением элементов, кратных пяти.
C++ Вычислите сумму квадратов всех элементов заданного массива A[N], за исключением элементов, кратных пяти.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Aloir
 Аватар для Aloir
216 / 216 / 13
Регистрация: 17.12.2010
Сообщений: 688
05.02.2014, 18:39     Программа не работает как надо. Задача: Вывести сумму всех элементов массива, кратных данному числу К (вводится с клавиатуры) #2
у вас массив numb от 0 включительно до 99 включительно, 100 элемента нету, а вы его заполняете
C++
1
2
3
4
  for (int a = 0; a <= 100; a++)
    {
        numb[a] = a;
    }
и так далее
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,042
05.02.2014, 18:42     Программа не работает как надо. Задача: Вывести сумму всех элементов массива, кратных данному числу К (вводится с клавиатуры) #3
а зачем тебе массив???
C++
1
2
3
4
cin >> K;
cin>>a;
if(a%K==0)
 sum+=a;
и если уж нужен именно массив и ты на плюсах то используй vector он для этого и предназначен, динамический массив

Добавлено через 2 минуты
Цитата Сообщение от Stiva Посмотреть сообщение
C++
1
2
3
4
5
6
7
for (int j = 0; j <= 100; j++)
 {
    if (numb[j] % K == 0)
   {
    mass[j] = numb[j];
   }
 }
а если не равны что запишется в mass[j] ????
правильно мусор а потом ты его подсчитаешь
Stiva
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 2
05.02.2014, 19:12  [ТС]     Программа не работает как надо. Задача: Вывести сумму всех элементов массива, кратных данному числу К (вводится с клавиатуры) #4
Спасибо всем. Переписал код, теперь всё работает и исключений нет.
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
#include <iostream>
using namespace std;
int main()
{
    int K;
    cout << "K= "; 
    cin >> K; 
    int numb[101]; 
    for (int q = 0; q <=100; q++) 
    {
        numb[q] = q;
    }
    int sum = 0;
    for (int w = 1; w <= 100; w++) 
    {
        if (numb[w] % K == 0) 
        {
            sum += numb[w];  
        }
    }
    cout << "Summa= " << sum; 
    system("pause");
    return 0;
}
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,042
05.02.2014, 19:23     Программа не работает как надо. Задача: Вывести сумму всех элементов массива, кратных данному числу К (вводится с клавиатуры) #5
Цитата Сообщение от Stiva Посмотреть сообщение
Переписал код, теперь всё работает и исключений нет.
а хошь еще убыстрю
исходя из твоего
Цитата Сообщение от Stiva Посмотреть сообщение
C++
1
2
3
for (int q = 0; q <=100; q++) 
 {
     numb[q] = q;
массив заполняется индексами
C++
1
2
for(int i=K;i<=100;i+=K)
 summ+=i;
и никаких массивов
Yandex
Объявления
05.02.2014, 19:23     Программа не работает как надо. Задача: Вывести сумму всех элементов массива, кратных данному числу К (вводится с клавиатуры)
Ответ Создать тему
Опции темы

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