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

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

Войти
Регистрация
Восстановить пароль
 
Блондинка_)
0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 23
#1

Подскажите что дабавить? - C++

29.01.2011, 07:16. Просмотров 432. Ответов 5
Метки нет (Все метки)

В этой задаче выводится наибольшая цифра в числе,подскажите,пожалуйста что добавить чтобы выводилась не только наибольшая цифра,но она была бы еще и четной.
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
#include <ctime>
#include <cstdlib>
#include <cstdio>
#include <windows.h> 
int LeastDigit(const int &a_number) {
  int least_digit = a_number % 10;
  int current_number = a_number / 10;
  while (current_number != 0) {
    if (least_digit < current_number % 10)
      least_digit = current_number % 10;
    current_number /= 10;
  }
  return least_digit;
}
for (int i=o;i<6;i++)
if (least_digit%2 ==0)
least_digit = least_digit2;
 
int main(int argc, char *argv[]) {
  srand(time(NULL));
 
  int number_count;
  //number_count = 50 + rand() % 10;
  printf("Vvedite kol-vo: ");
  scanf("%d", &number_count);
  int *numbers = new int[number_count];
 
  for (int i = 0; i < number_count; ++i) {
    // numbers[i] = rand() % 55535 + 10000;
    printf("Enter number %d: ", i);
    scanf("%d", &numbers[i]);
  }
 
  for (int i = 0; i < number_count; ++i)
    printf("Number: %d, least digit: %d.\n", numbers[i],
           LeastDigit(numbers[i]));
           
 
           
 
  int key;
  scanf("%d", &key);
  system("PAUSE");
  return 0;
}
Вопрос жизни и смерти..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2011, 07:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подскажите что дабавить? (C++):

подскажите что делать при вводимых данных 10 25 и 5 20 программа работает не правильно должна выводить 135 подскажите что делать - C++
Вывод В выходной файл выведите одно число - сколько ударов сделали часы за этот отрезок времени.

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

Подскажите что не так ? - C++
#include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include &lt;math.h&gt; using namespace std; int main() { double x,y,n; ...

Подскажите что не так? - C++
Класс #include &lt;string&gt; #include &lt;fstream&gt; #include &lt;math.h&gt; #include &quot;dot.h&quot; Dot::Dot() { x=0; y=0; ...

Подскажите что за ошибка? - C++
Invalid allocation size: 4294967295 bytes. Выдает такую ошибку не подскажите в чем может быть дело, в каких случаях такие выскакивают , в...

Подскажите что означает /= - C++
Начал читать книгу для начинающих по с++, в одном из примеров встретил код вида Mxx/=N; Mxy/=N; My/=N; Mx/=N; Наверное, /=...

5
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
29.01.2011, 12:19 #2
Вообще-то в представленной программе находится минимальная цифра в числе.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <cstdio>
 
// возвращает максимальную четную цифру в числе
// или -1, если в числе нет четных цифр
// (0 считается четной цифрой)
char MaximumEvenDigit(const int a_number) {
  char maximum_even_digit = -1;
  int temporary_number = a_number;
  while (temporary_number != 0) {
    char digit = temporary_number % 10;
    if (digit % 2 == 0 && digit > maximum_even_digit)
      maximum_even_digit = digit;
    temporary_number /= 10;
  }
  return maximum_even_digit;
}
 
int main(int argc, char *argv[]) {
  printf("%d\n", MaximumEvenDigit(13570));
  return 0;
}
0
dxdy
97 / 97 / 5
Регистрация: 14.06.2010
Сообщений: 284
29.01.2011, 12:36 #3
lemegeton а почему вы начинаете работать с int а потом переходите на char? Если у вас 0 - четный, то на примере
C++
1
printf("%d\n", MaximumEvenDigit(0));
программа выдаст неверный результат.
0
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
29.01.2011, 22:07 #4
Нужно поменять цикл с пред-условием на цикл с пост-условием.
C++
1
2
3
4
5
6
7
8
9
10
11
char MaximumEvenDigit(const int a_number) {
  char maximum_even_digit = -1;
  int temporary_number = a_number;
  do {
    char digit = temporary_number % 10;
    if (digit % 2 == 0 && digit > maximum_even_digit)
      maximum_even_digit = digit;
    temporary_number /= 10;
  } while (temporary_number != 0);
  return maximum_even_digit;
}
Цитата Сообщение от dxdy Посмотреть сообщение
lemegeton а почему вы начинаете работать с int а потом переходите на char?
Уточните.
0
dxdy
97 / 97 / 5
Регистрация: 14.06.2010
Сообщений: 284
30.01.2011, 10:45 #5
C++
1
2
3
4
5
6
7
8
9
10
11
int MaximumEvenDigit(const int a_number) {
  int maximum_even_digit = -1;
  int temporary_number = a_number;
  do {
    int digit = temporary_number % 10;
    if (digit % 2 == 0 && digit > maximum_even_digit)
      maximum_even_digit = digit;
    temporary_number /= 10;
  } while (temporary_number != 0);
  return maximum_even_digit;
}
0
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
30.01.2011, 13:58 #6
На подавляющем большинстве современных платформ sizeof(signed int) > sizeof(signed char). Насколько мне известно, нет таких платформ, на которых десятичная цифра не помещалась бы в char.

В данной задаче этот факт, безусловно, не играет роли.
0
30.01.2011, 13:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.01.2011, 13:58
Привет! Вот еще темы с ответами:

Подскажите, что не так? - C++
//bow.h using namespace std; class Bow { string color; bool drawn; int arrows;

Подскажите что бы понять - C++
Как использовать typedef c указателями, например почему я не могу поставить указатель на int* m и дальше создавать переменные такого же...

Подскажите, что неправильно? - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; class bMoney; class sterling; class sterling { long pounds; ...

Подскажите что не так? - C++
Нужно заменить цифры в числе на ноль, если цифра равна &quot;a&quot;. А затем вывести получившееся число. число N - натуральное, а - является...


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

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

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