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

Найти количество двух- и количество трехразрядных чисел в последовательности - C++

Восстановить пароль Регистрация
 
CLiteratir
1 / 1 / 0
Регистрация: 03.10.2015
Сообщений: 28
03.10.2015, 10:49     Найти количество двух- и количество трехразрядных чисел в последовательности #1
Вводится последовательность из N целых чисел. Найти количество двух и количество
трех разрядных чисел в последовательности (функцией оформить определние колва разрядов).


В чем ошибка? Выводит ch1=0 и ch2=0
ps. Плз,не надо писать новый код
Спасибо

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
45
46
47
#include <iostream>
#include <math.h>
using namespace std;
 
int f1(int PER, int ch1, int ch3)
{
        { if (PER >= 10 && PER <= 99)
            ch1 += 1;
        else
                ch3 += 1;}
        return ch1;
}
 
int f2(int PER, int ch2, int ch3)
{
        { 
            if (PER >= 100 && PER <= 999)
                ch2 += 1;
            else
                ch3 += 1;}
        return ch2;
}
int main()
{
//------------------------------
    int PER;
    int ch1 = 1;
    int ch2 = 1;
    int ch3 = 0;
    while(true)
{
//------------------------------
cout << "4islo = ";
cin >> PER;
cout << endl;
        if (PER != 0)
        {f1(PER,ch1,ch3);
        f2(PER,ch2,ch3);}
        else
    {cout << ch1 << endl;
    cout << ch2 << endl;
    break;}
}
//------------------------------2
system("pause");
    return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2015, 10:49     Найти количество двух- и количество трехразрядных чисел в последовательности
Посмотрите здесь:

C++ Найти количество совершенных и простых чисел в последовательности
Дана последовательность чисел. Найти количество различных чисел в этой последовательности C++
Дана последовательность чисел. Найти количество различных чисел в этой последовательности C++
C++ Найти количество максимальных элементов последовательности чисел
Найти количество двух- и количество трехразрядных чисел в заданной последовательности C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Даценд
Модератор
 Аватар для Даценд
2523 / 2438 / 1248
Регистрация: 20.04.2015
Сообщений: 4,637
03.10.2015, 10:55     Найти количество двух- и количество трехразрядных чисел в последовательности #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
поменяйте сигнатуры функций для передачи параметров по ссылке:
C++
1
int f1(int PER, int &ch1, int &ch3)
и
C++
1
int f2(int PER, int &ch2, int &ch3)
CLiteratir
1 / 1 / 0
Регистрация: 03.10.2015
Сообщений: 28
03.10.2015, 10:58  [ТС]     Найти количество двух- и количество трехразрядных чисел в последовательности #3
Цитата Сообщение от Даценд Посмотреть сообщение
поменяйте сигнатуры функций для передачи параметров по ссылке:
Код C++Выделить код
1
int f1(int PER, int &ch1, int &ch3)
и
Код C++Выделить код
1
int f2(int PER, int &ch2, int &ch3)
Спасибо,все заработало,только вот вопрос: почему именно &? И почему без него не работает?
Даценд
Модератор
 Аватар для Даценд
2523 / 2438 / 1248
Регистрация: 20.04.2015
Сообщений: 4,637
03.10.2015, 12:31     Найти количество двух- и количество трехразрядных чисел в последовательности #4
Без & в функции выделяется память под параметры, и параметр ch1 функции f1 будет не связан с переменной ch1 функции main. При добавлении & в функции создается ссылка на переменную ch1, соответственно ch1 из f1 будет ссылкой на ch1 из main.
freeworker
3 / 1 / 0
Регистрация: 03.10.2015
Сообщений: 9
Завершенные тесты: 1
03.10.2015, 12:45     Найти количество двух- и количество трехразрядных чисел в последовательности #5
Без & у тебя в функцию передаются не сами переменные а их копии, и всё что происходит внутри функции никак не отражается на оригинале этих переменных. А при передаче по ссылке, в функцию передаётся так указатель на оригинальную переменную и все манипуляции с ней внутри функции отражаются на оригинале.
Yandex
Объявления
03.10.2015, 12:45     Найти количество двух- и количество трехразрядных чисел в последовательности
Ответ Создать тему
Опции темы

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