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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
sunlight17
0 / 0 / 0
Регистрация: 29.12.2010
Сообщений: 29
#1

Программа не выполняется как надо. - C++

10.01.2011, 16:50. Просмотров 985. Ответов 20
Метки нет (Все метки)

Вот две программы, по идее они должны выполнятся одинаково, но первая выполняется правильно, а вторая нет.
№1
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 <stdio.h>
#include <iostream>
#include <conio.h>
int main(int argc, char *argv[])
{
    int acc=0;
    do
    {
        for (;;)
        {
            int value;
            std::cin>>value;
            if (value<0)
            {
                       break;
                       }
                       acc=acc+value;
                       }
                       }while(!(acc>=100));
                       std::cout<<acc;
                                                    
    getch();
    return 0;
}
№2
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 <stdio.h>
#include <iostream>
#include <conio.h>
int VVV(void)
{
int acc=0;
for (;;)
{
int value;
std::cin>>value;
if (value<0)
{break;
}
acc=acc+value;
}
return acc;
}
int main(int argc, char *argv[])
{
    int nN;
do    
{
nN=VVV();
}while (!(nN>=100));
std::cout<<nN;                              
    getch();
    return 0;
}
Объясните плз , что не так во втором коде?
P.S.
Целью программ(по крайней мере первой) было суммирование положительных чисел пока сумма не будет равна стам .(процесс суммирования можно прекратить введением отрицательного числа, но если вы ввели отрицательное число , а сумма ещё не равна стам , то суммирование можно продолжить)

Добавлено через 33 минуты
как объявить переменную acc так чтобы она относилась к обеим функциям?во втором коде
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2011, 16:50     Программа не выполняется как надо.
Посмотрите здесь:

C++ Двумерный массив чисел, не выполняется программа
C++ Надо чтобы, как только встречаются данные о женщине, программа преуменьшала ее возраст
дана программа на рекурсивную функцию надо разработать как рисунке C++
Закрывается, а не выполняется программа после нажатия enter C++
Программа со сверхбольшими числами не выполняется до конца C++
C++ Ошибка на этапе выполнения при том, что программа выполняется до конца
C++ Не выполняется программа проводника
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2011, 20:53     Программа не выполняется как надо.
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
metallhead
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 4
13.01.2011, 20:53     Программа не выполняется как надо. #21
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
#include <iostream.h>
#include <math.h>
#include <conio.h>
#include <iomanip.h>
#define n 10
 
void main ()
{
 
     short i, imax;
     float x[n], z[n], y[n], d[n], dmax;
 
     clrscr();
 
     cout<<"Введите массив"<<endl;
     for (i=0; i<n; i++)
     cin>>x[i];
     cout<<setw(20)<<" "<<"x          y           z "<<endl<<endl;\\как вывести массивы x, y, z?
     for (i=0; i<n; i++)
     {
         y[i]=x[i]*x[i]-2*x[i]-3;
         if (y[i]<1) z[i]=1+sqrt(fabs(x[i]));
         else z[i]=x[i]*x[i]+M_PI/2*sin((M_PI/2)*x[i]);
         cout<<setw(10)<<" "<<setw(11)<<setprecision(2)<<x[i]<<setw(10)<<" "<<y[i]<<setw(10)<<" "<<z[i]<<endl;
         dmax=sqrt(pow(y[1]-y[0],2)+pow(z[1]-z[0],2));
         for (i=2; i<n; i++)
         {
         d[i]=sqrt(pow(y[i]-y[0],2)+pow(z[i]-z[0],2));
         if (d[i]>dmax)
         {
            imax=i;
            dmax=d[i];
         }
         }
         cout<<setw(25)<<"dmax="<<dmax;
         cout<<setw(25)<<"imax="<<imax;
     }
 
     getch();
}
мой вопрос состоит в комментарии
Yandex
Объявления
13.01.2011, 20:53     Программа не выполняется как надо.
Ответ Создать тему
Опции темы

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