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

Объясните, как работает программа - C++

Восстановить пароль Регистрация
 
grovail
Сообщений: n/a
23.12.2011, 20:44     Объясните, как работает программа #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
25
26
27
28
29
30
31
32
33
34
35
36
 #include <iostream>
 #include <conio.h>
 using namespace std;
 void main()
 {
 int a, b, c, temp, kol_vo_1, kol_vo_2, kol_vo_3;
 int copy_a, copy_c, copy_b;
 cin>>a>>b>>c;
 kol_vo_1=0;
 kol_vo_2=0;
 kol_vo_3=0;
 copy_a=a;
 copy_b=b;
 copy_c=c;
 while (copy_a!=0) 
 {
 temp=copy_a%10;
 copy_a/=10;
 if (temp==1) kol_vo_1++;
 }
 while (copy_b!=0)
 {
 temp=copy_b%10;
 copy_b/=10;
 if (temp==1) kol_vo_2++;
 }
 while (copy_c!=0)
 {
 temp=copy_c%10;
 copy_c/=10;
 if (temp==1) kol_vo_3++;
 }
 if (kol_vo_1>kol_vo_2 && kol_vo_1>kol_vo_3) cout<<a; else
 if (kol_vo_2>kol_vo_3) cout<<b; else cout<<c;
 getch();
 }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2011, 20:44     Объясните, как работает программа
Посмотрите здесь:

C++ Объясните пожалуйста как работает программа!!
C++ Объясните как работает this -> и ->
Объясните как работает программа C++
qsort объясните как работает C++
C++ Объясните, как работает программа
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
23.12.2011, 21:02     Объясните, как работает программа #2
C++
1
temp = copy_a % 10;
в temp записывается последняя цифра числа.
например если у вас число 2347 то запишется 7.

C++
1
copy_a /= 10;
это тоже самое что и
C++
1
copy_a = copy_a /10;
Т.к. при делении используются целые числа то результат тоже будет целый. дробная часть отбрасывается. Поэтому если 2347 / 10 то результатом будет 234.

Далее проверяется является ли значение записанное в temp единицей.
Если да то
C++
1
kol_vo_1++;
увеличивает значение переменной kol_vo_1 на один.

далее цикл повторяется пока например copy_a не равно 0. А равно нулю оно будет когда будет разделено на 10 число состоящее только из одной цифры. наприме 2 / 10 = 0.
Данной условие говорит о том что вы проверили все имеющиеся цифры в числе и далее цикл повторять нет надобности
grovail
Сообщений: n/a
23.12.2011, 21:40     Объясните, как работает программа #3
а как понять что в temp единица, и если значение в temp ни разу не было единицей то оно остается нулем?
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
23.12.2011, 23:03     Объясните, как работает программа #4
Цитата Сообщение от grovail Посмотреть сообщение
а как понять что в temp единица
вот так:
Цитата Сообщение от grovail Посмотреть сообщение
C++
1
if (temp==1) { ... }
Цитата Сообщение от grovail Посмотреть сообщение
если значение в temp ни разу не было единицей то оно остается нулем?
temp равно результату вычесления
Цитата Сообщение от grovail Посмотреть сообщение
temp=copy_b%10;
Yandex
Объявления
23.12.2011, 23:03     Объясните, как работает программа
Ответ Создать тему
Опции темы

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