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

Нужна помощь, чтобы разобраться в несложной программе (последовательность) - C++

Восстановить пароль Регистрация
 
C++++++
0 / 0 / 0
Регистрация: 21.10.2011
Сообщений: 11
21.10.2011, 16:53     Нужна помощь, чтобы разобраться в несложной программе (последовательность) #1
Вот задание:
Дана последовательность целых чисел, за которой следует 0. Найти среднее арифметическое этой последовательности.
Ну и вот собственно мой вариант кода программы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <iostream.h>
void main(void)
{
int f,x,n,s;
n=1;
while (x!=0)
{
cout<<"vvedite elem. posled. #"<<n<<" ";
cin>>x;
s+=x;
n++;
}
f=s/n;
cout<<"srednee arifmeticheskoe="<<f;
getch();
}
При вычислении f проблема состоит в n. Для вычисления программа берет последнее значение суммы из цикла, но почему то не последнее значение n. Собственно впорос в том, как задать это последнее значение n..а может я вообще в корне неправильно делаю)

 Комментарий модератора 
Используйте теги форматирования кода.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2011, 16:53     Нужна помощь, чтобы разобраться в несложной программе (последовательность)
Посмотрите здесь:

C++ НУЖНА ПОМОЩЬ В С++
Нужна помощь C++
C++ Нужна помощь
Нужна помощь C++
C++ Нужна помощь
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
21.10.2011, 17:01     Нужна помощь, чтобы разобраться в несложной программе (последовательность) #2
1. Выберите цикл с пост условием.
2. При подсчете проверяйте, что n > 0.
ViT(Vet@l)
27 / 26 / 2
Регистрация: 13.12.2010
Сообщений: 333
21.10.2011, 18:02     Нужна помощь, чтобы разобраться в несложной программе (последовательность) #3
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
#include <iostream>
 
using namespace std;
 
int main()
{
    int massiv[100];
 
    cout << "Vvedite kolichestvo chisel" << endl;
 
    int a = 0, sum = 0;
 
    cin >> a;
 
    for(int i = 0; i < a; i++){
        cin >> massiv[i];
        sum+=massiv[i];
    }
 
    float sred = 0;
 
    sred =(float) sum / a;
 
    cout << sred;
 
    return 0;
}
C++++++
0 / 0 / 0
Регистрация: 21.10.2011
Сообщений: 11
21.10.2011, 18:12  [ТС]     Нужна помощь, чтобы разобраться в несложной программе (последовательность) #4
Нужно использовать оператор предусловия, массив нельзя ;х но все равно спасибо)
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
21.10.2011, 18:41     Нужна помощь, чтобы разобраться в несложной программе (последовательность) #5
Все проще, до цикла поставьте
C++
1
2
n = 0;
cin >> x;
Затем
C++
1
2
3
4
5
6
7
while (x != 0)
{
   n++;
   cout<<"vvedite elem. posled. #"<<n<<" ";
   cin >> x;
   s += x;
}
aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
21.10.2011, 18:58     Нужна помощь, чтобы разобраться в несложной программе (последовательность) #6
как-то так
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
#include <iostream>
using namespace std;
int main(void)
{
   int x,n,s;
   n=0;
   s=0;
   cout<<"Enter elem. #"<<n+1<<" of sequence: ";
   cin>>x;
   while (x!=0)
   {
      n++;
      s+=x;
      cout<<"Enter elem. #"<<n+1<<" of sequence: ";
      cin>>x;
   }
   if(n)
   {
      double f=(double)s/n;
      cout<<"Average="<<f<<endl;
   }
   else
      cout<<"Sequence is empty!\n";
   return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2011, 19:07     Нужна помощь, чтобы разобраться в несложной программе (последовательность)
Еще ссылки по теме:

Помощь по программе C++
Массив: Вставить в последовательность действительное число b так, чтобы последовательность осталась неубывающей. C++
не могу разобраться в несложной задаче C++

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

Или воспользуйтесь поиском по форуму:
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
21.10.2011, 19:07     Нужна помощь, чтобы разобраться в несложной программе (последовательность) #7
Цитата Сообщение от Thinker Посмотреть сообщение
C++
1
2
3
4
5
6
7
while (x != 0)
{
   n++;
   cout<<"vvedite elem. posled. #"<<n<<" ";
   cin >> x;
   s += x;
}
Да, забыл строчки местами поменять:

C++
1
2
3
4
5
6
7
while (x != 0)
{
   n++;
   s += x;
   cout<<"vvedite elem. posled. #"<<n<<" ";
   cin >> x;
}
Yandex
Объявления
21.10.2011, 19:07     Нужна помощь, чтобы разобраться в несложной программе (последовательность)
Ответ Создать тему
Опции темы

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