С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

переделать программу - C++

07.10.2012, 14:28. Просмотров 355. Ответов 8
Метки нет (Все метки)

Помогите изменить программу чтобы она была гибкой(Чтоб всегда можно было изменить количество чисел (не только 10))
И чтобы когда нет вообще положительных чисел(написала что их нет)
буду очень благодарен!!

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
#include "StdAfx.h" //Подключение файла. кавычки говроят о том, что поиск файла начнется с папки с программой, если он там не будет найден поиск будет роизведен в директориях, установленных переменной PATH
#include <iostream> //Подключение файла. Поиск в директориях, установленных переменной PATH
#include <time.h> //Подключение файл, содержащего основные функции работы со временем
using namespace std; //Объявление пространства имен
int main() //главная функция программы (программа-драйвер)
{ //область действия главной функции 
        setlocale(LC_ALL,"Russian"); //Установка локации
 
    int mas[10]; //объявление одномерного массива, содержащего 10 элементов
    srand(time(NULL));  //рандомизация на основе системмного времени, необходимо для того, чтобы при каждом запуске программы, генерировались разные значения
    int z = 0; //Объявление объекта целого типа
     for(int i=0;i<10;i++) //Цикл (i присвоем 0, пока i меньше 10, i прибавим 1)
     {   //Область действия цикла
         static int m = 0; //объявление статического объекта целого типа
         int k = rand()%(100+1); //Объекту целого типа присвоем сгенерированное слуайным образом число функцией rand - диапозон указан в скобках
         if(rand()%(6+1) > 3) //Условный оператор
         { //Область видимости условного оператора
mas[i]=(k)*(-1); //определенному элементу массива присвоем рузультат выражения
}
         else //Если условие не верно
         {mas[i] = k;} 
                        if(mas[i] > 0)
                        {m++;
                        if(m <= 2)
                        {z = i;}
                        }
     }
 
         for(int i=0;i<10;i++)
       
        cout<<i+1<<" => "<<mas[i]<<endl; //оператор вывода
     
           cout<<"---------------------------------------------"<<endl;
        cout<<z+1<<" -> "<<mas[z]<<endl;
        
    system("PAUSE"); //задержка консольного окна до нажатия любой клавиши
 
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2012, 14:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос переделать программу (C++):

Нужно программу на Паскале переделать в программу на С++ - C++
Помогите, пожалуйста!!! У меня есть программа на Паскале , а нужно ее переписать, чтобы она была на С++ (windows консоль). Текст...

Переделать программу 1 в программу 2 с использованием функций - C++
проблема в том, что компилятор не ругается, но программа зависает при выполнении. уже много времени на это потратил. вроде задание не...

Переделать программу из C# в C++ - C++
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace...

Переделать программу из С# в С++ - C++
Нашел на форуме такой код using System; using System.Collections.Generic; using System.Text.RegularExpressions; namespace...

Переделать программу - C++
Нужно переделать программу так, чтобы она выводила на консоль сумму в виде 5+10+15+20+25+...+95=950 (я думаю последовательность ясна). У...

Переделать программу из C# в C++ - C++
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Collections; ...

8
BRcr
4010 / 2299 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
07.10.2012, 14:37 #2
Забиваешь массив, выводишь его... В чем вообще суть программы-то?
0
BLAZERS
0 / 0 / 0
Регистрация: 19.09.2012
Сообщений: 19
07.10.2012, 14:43  [ТС] #3
Цитата Сообщение от BRcr Посмотреть сообщение
Забиваешь массив, выводишь его... В чем вообще суть программы-то?
Она ищет порядковый номер второго положительного числа
0
BumerangSP
4287 / 1409 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
07.10.2012, 14:46 #4
BLAZERS, для чего тут статическая m? Она заполняется только в цикле, в цикле и живет. В смысле, это ее выводить нужно?
И чтобы когда нет вообще положительных чисел(написала что их нет)
0
BLAZERS
0 / 0 / 0
Регистрация: 19.09.2012
Сообщений: 19
07.10.2012, 15:01  [ТС] #5
Цитата Сообщение от BumerangSP Посмотреть сообщение
BLAZERS, для чего тут статическая m? Она заполняется только в цикле, в цикле и живет. В смысле, это ее выводить нужно?
Ну без неё не находиться 2 положительное

А определить надо чтобы она работала когда даже нет вообще положительных чисел
Я пробовал(но у меня не выходит)..
0
BumerangSP
4287 / 1409 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
07.10.2012, 15:22 #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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include "StdAfx.h" //Подключение файла. кавычки говроят о том, что поиск файла начнется с папки с программой, если он там не будет найден поиск будет роизведен в директориях, установленных переменной PATH
#include <iostream> //Подключение файла. Поиск в директориях, установленных переменной PATH
#include <time.h> //Подключение файл, содержащего основные функции работы со временем
using namespace std; //Объявление пространства имен
int main() //главная функция программы (программа-драйвер)
{ //область действия главной функции 
        setlocale(LC_ALL,"Russian"); //Установка локации
 
    int n;
    cout<<"Size: ";
    cin>>n;
    int* mas = new int[n]; //объявление одномерного массива, содержащего n элементов
    int m = 0; //объявление статического объекта целого типа
    srand(time(NULL));  //рандомизация на основе системмного времени, необходимо для того, чтобы при каждом запуске программы, генерировались разные значения
    int z = 0; //Объявление объекта целого типа
     for(int i=0;i<n;i++) //Цикл (i присвоем 0, пока i меньше 10, i прибавим 1)
     {   //Область действия цикла
         int k = rand()%(100+1); //Объекту целого типа присвоем сгенерированное слуайным образом число функцией rand - диапозон указан в скобках
         if(rand()%(6+1) > 3) //Условный оператор
         { //Область видимости условного оператора
mas[i]=(k)*(-1); //определенному элементу массива присвоем рузультат выражения
}
         else //Если условие не верно
         {mas[i] = k;} 
                        if(mas[i] > 0)
                        {m++;
                        if(m <= 2)
                        {z = i;}
                        }
     }
 
         for(int i=0;i<n;i++)
       
        cout<<i+1<<" => "<<mas[i]<<endl; //оператор вывода
     
           cout<<"---------------------------------------------"<<endl;
   if (!m)
     cout<<"Numbers >0 not found"<<endl;
    else
     cout<<z+1<<" -> "<<mas[z]<<endl;   
    system("PAUSE"); //задержка консольного окна до нажатия любой клавиши
    delete[] mas;
    return 0;
}
1
BLAZERS
0 / 0 / 0
Регистрация: 19.09.2012
Сообщений: 19
07.10.2012, 15:28  [ТС] #7
Цитата Сообщение от BumerangSP Посмотреть сообщение
Так должно работать
Спасибо большое))
0
BRcr
4010 / 2299 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
07.10.2012, 15:35 #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    int mas[10], z = -1;
 
    srand( time( NULL ) );
    for ( int i = 0, k, m = 0; i < 10; i++ ) {
        k = rand( ) % 100 + 1;
        ( rand( ) % 6 > 3 ) ? k = -k : 0;
        mas[i] = k;
        if ( k > 0 ) {
            ++m == 2 ? z = i : 0;
        }
        cout << i + 1 << " => " << k << endl;
    }
    // for ( int i = 0; i < 10; i++ ) {
    // cout << i + 1 << " => " << mas[i] << endl;
    // }
    cout << "---------------------------------------------" << endl;
    if ( z > 0 ) {
        cout << z + 1 << " -> " << mas[z] << endl;
    }
    else {
        cout << "положительных нет" << endl;
    }
1
BLAZERS
0 / 0 / 0
Регистрация: 19.09.2012
Сообщений: 19
07.10.2012, 15:39  [ТС] #9
Цитата Сообщение от BRcr Посмотреть сообщение
C++
1
    int mas[10], z = -1;...
И вам тоже))
0
07.10.2012, 15:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.10.2012, 15:39
Привет! Вот еще темы с ответами:

Переделать программу - C++
Вот задание- Даны строки S1 и S2. Сформировать строку S таким образом, чтобы в нее сначала вошли все четные слова строки S1, а потом все...

Переделать программу - C++
Ребят помогите девушке не понимаю сама как решить вот есть программа #include &lt;iostream&gt; using namespace std; void...

Переделать программу с do while - C++
Помогите пожалуйста переделать эту программу с do while #include &lt;iostream.h&gt; Using namespace std; Int main (void) { Int...

Переделать программу - C++
помогите изменить программу, программа ищет наименьший элемент последовательности, а мне надо индекс этого элемента т.е порядковой номер...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.