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

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

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

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

07.10.2012, 14:28. Просмотров 336. Ответов 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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BRcr
4005 / 2294 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
07.10.2012, 14:37     переделать программу #2
Забиваешь массив, выводишь его... В чем вообще суть программы-то?
BLAZERS
0 / 0 / 0
Регистрация: 19.09.2012
Сообщений: 19
07.10.2012, 14:43  [ТС]     переделать программу #3
Цитата Сообщение от BRcr Посмотреть сообщение
Забиваешь массив, выводишь его... В чем вообще суть программы-то?
Она ищет порядковый номер второго положительного числа
BumerangSP
4284 / 1406 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
07.10.2012, 14:46     переделать программу #4
BLAZERS, для чего тут статическая m? Она заполняется только в цикле, в цикле и живет. В смысле, это ее выводить нужно?
И чтобы когда нет вообще положительных чисел(написала что их нет)
BLAZERS
0 / 0 / 0
Регистрация: 19.09.2012
Сообщений: 19
07.10.2012, 15:01  [ТС]     переделать программу #5
Цитата Сообщение от BumerangSP Посмотреть сообщение
BLAZERS, для чего тут статическая m? Она заполняется только в цикле, в цикле и живет. В смысле, это ее выводить нужно?
Ну без неё не находиться 2 положительное

А определить надо чтобы она работала когда даже нет вообще положительных чисел
Я пробовал(но у меня не выходит)..
BumerangSP
4284 / 1406 / 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;
}
BLAZERS
0 / 0 / 0
Регистрация: 19.09.2012
Сообщений: 19
07.10.2012, 15:28  [ТС]     переделать программу #7
Цитата Сообщение от BumerangSP Посмотреть сообщение
Так должно работать
Спасибо большое))
BRcr
4005 / 2294 / 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;
    }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.10.2012, 15:39     переделать программу
Еще ссылки по теме:

C++ Переделать программу
C++ Переделать программу
Переделать программу из C# в C++ C++
Переделать программу C++
C++ Переделать программу

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

Или воспользуйтесь поиском по форуму:
BLAZERS
0 / 0 / 0
Регистрация: 19.09.2012
Сообщений: 19
07.10.2012, 15:39  [ТС]     переделать программу #9
Цитата Сообщение от BRcr Посмотреть сообщение
C++
1
    int mas[10], z = -1;...
И вам тоже))
Yandex
Объявления
07.10.2012, 15:39     переделать программу
Ответ Создать тему
Опции темы

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