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

Дано четыре числа. Вывести на экран наибольшую из первых цифр заданных чисел. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 5.00
AI-99
0 / 0 / 0
Регистрация: 16.04.2010
Сообщений: 19
08.05.2010, 22:32     Дано четыре числа. Вывести на экран наибольшую из первых цифр заданных чисел. #1
Люди помогите, пожалуйста.
Дана такая задача:
Дано четыре числа. Вывести на экран наибольшую из первых цифр заданных чисел. Например, если a=25, b=730,c=127,d=1995, то должна напечататься цифра 7.

Я написал вот такую программу:
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
#include <iostream.h>
#include <stdio.h>
#include <string.h>
void main ()
    {int i;
    char a[10],b[10],c[10],d[10],s1[2] = "",s2[2] = "",s3[2] = "",s4[2] = "";
    cout << "Vvedite a";
    cin >> a;
    cout << "Vvedite b";
    cin >> b;
    cout << "Vvedite c";
    cin >> c;
    cout << "Vvedite d";
    cin >> d;
 
    {strncpy (s1,a,1);
    strncpy (s2,b,1);
    strncpy (s3,c,1);
    strncpy (s4,d,1);
    }
 
    char max[5];
    strcpy (max,s1);
    i = strcmp (s2,max);
    if (i==1) strcpy (max,s2);
    i = strcmp (s3,max);
    if (i==1) strcpy (max,s3);
    i = strcmp (s4,max);
    if (i==1) strcpy (max,s4);
    cout << max << "\n";
}
И мне нужно переделать её так, чтобы наибольшую цифру вычисляла функция и возвращала это значение в программу.
Я попытался это сделать:

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
#include <iostream.h>
#include <stdio.h>
#include <string.h>
char F1 (char e,char max1)
{int i = strcmp (e,max1);
if (i==1) strcpy (max1,e);
{return max1;};
}
void main ()
    {char a[10],b[10],c[10],d[10],s1[2] = "",s2[2] = "",s3[2] = "",s4[2] = "",max[2],d1,d2,d3;
    cout << "Vvedite a";
    cin >> a;
    cout << "Vvedite b";
    cin >> b;
    cout << "Vvedite c";
    cin >> c;
    cout << "Vvedite d";
    cin >> d;
 
    {strncpy (s1,a,1);
    strncpy (s2,b,1);
    strncpy (s3,c,1);
    strncpy (s4,d,1);
    }
    
    strcpy (max,s1);
    d1=F1(s2,max);
    d2=F1(s3,F1(s2,max));
    d3=F1(s4,F1(s3,F1(s2,max)));
    cout << max;
}
но у меня выдаётся куча ошибок.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2010, 22:32     Дано четыре числа. Вывести на экран наибольшую из первых цифр заданных чисел.
Посмотрите здесь:

C++ Вывести на экран 1 или 0 в зависимости от того, есть ли среди первых трех цифр дробной части заданного положительного вещественного числа цифра ноль
вывести на экран n первых чисел Фибоначчи C++
Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N-1, у которых произведение цифр совпадает с произведением цифр данного числа C++
C++ Дана последовательность n натуральных чисел. Для каждого числа вычислить количество его цифр и сумму этих цифр. Вывести на экран каждое число, количес
C++ Вывести на экран все шестизначные числа, сумма цифр которых равна N и сообщить количество таких чисел
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Bloodykeeper
This party getting crazy!
 Аватар для Bloodykeeper
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
08.05.2010, 23:24     Дано четыре числа. Вывести на экран наибольшую из первых цифр заданных чисел. #2
Идея бредовая конечно. Низкоуровневая так сказать. Разбей на сотни, деятки и целые, а потом сравни, что больше, то и выведи.
AI-99
0 / 0 / 0
Регистрация: 16.04.2010
Сообщений: 19
09.05.2010, 00:40  [ТС]     Дано четыре числа. Вывести на экран наибольшую из первых цифр заданных чисел. #3
Цитата Сообщение от Bloodykeeper Посмотреть сообщение
Разбей на сотни, деятки и целые, а потом сравни, что больше, то и выведи.
А не подскажете как это сделать?
Crudelis
Шаровик затейник
 Аватар для Crudelis
668 / 410 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
09.05.2010, 00:52     Дано четыре числа. Вывести на экран наибольшую из первых цифр заданных чисел. #4
ну для примера с числом а:
if(a<=100)
a/=100;
if(a<=1000)
a/=1000;

тут даже не нужен массив char просто используй int
MikeSoft
Эксперт C++
 Аватар для MikeSoft
3782 / 1766 / 85
Регистрация: 21.11.2009
Сообщений: 2,540
09.05.2010, 01:22     Дано четыре числа. Вывести на экран наибольшую из первых цифр заданных чисел. #5
AI-99, написал простенькую программу. Одно число сделал я за вас... а вы - по примеру сделайте остальные:

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
//---------------------------------------------------------------------------
#include <iostream.h>
#include <conio.h>
//---------------------------------------------------------------------------
int main()
{
  int x = 0, digit = 0, count = 0;
 
  cout << "Input value: ";
  cin >> x;
 
  while (x != 0) {
    digit = x;
    x = int(x/10);
    count++;
  }
  cout << "Number of digits: " << count << endl;
  cout << "Last digit: " << digit << endl;
 
  getch();
 
  return 0;
}
//---------------------------------------------------------------------------
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
09.05.2010, 01:36     Дано четыре числа. Вывести на экран наибольшую из первых цифр заданных чисел. #6
AI-99, держи:
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
#include <iostream>
 
inline int Max(int n1, int n2) {
  return n1 > n2? n1 : n2;
}
 
int LastDigit(int n) {
  int result = 0;
 
  while(n != 0) {
    result = n % 10;
    n /= 10;
  }
 
  return result;
}
 
int main() {
  int a;
  std::cout << "a = ";
  std::cin >> a;
 
  int b;
  std::cout << "b = ";
  std::cin >> b;
 
  int c;
  std::cout << "c = ";
  std::cin >> c;
 
  int d;
  std::cout << "d = ";
  std::cin >> d;
 
  int max_digit = LastDigit(a);
      max_digit = Max(max_digit, LastDigit(b));
      max_digit = Max(max_digit, LastDigit(c));
      max_digit = Max(max_digit, LastDigit(d));
 
  std::cout << "Max: " << max_digit << std::endl;
 
  return 0;
}
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
09.05.2010, 03:06     Дано четыре числа. Вывести на экран наибольшую из первых цифр заданных чисел. #7
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
#include <iostream>
#include <algorithm>
#include <iterator>
#include <vector>
 
void cut_to_one_digit(int& val){
    int div;
    if ( val < 0 )
        val *= -1;
    for ( div = 10; val / div > 0; div *= 10 )
        ;
    val = val * 10 / div;
}
 
int main(){
    int needed = 4, tmp;
    std::vector<int> vec;
    
    std::cout << "Enter " << needed << " numbers:" << std::endl;
    while ( needed-- ){
        std::cout << "Number (" << needed << " left) > ";
        std::cin >> tmp;
        vec.push_back(tmp);
    }
    std::for_each(vec.begin(), vec.end(), cut_to_one_digit);
    std::cout << "Greatest first digit is " << *(std::max_element(vec.begin(), vec.end())) << std::endl;
    
    return 0;
}
AI-99
0 / 0 / 0
Регистрация: 16.04.2010
Сообщений: 19
10.05.2010, 00:27  [ТС]     Дано четыре числа. Вывести на экран наибольшую из первых цифр заданных чисел. #8
Спасибо! Вроде бы разобрался.
magaaa
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 3
27.11.2012, 10:55     Дано четыре числа. Вывести на экран наибольшую из первых цифр заданных чисел. #9
Здравствуйте!) а не могли бы вы эту задачу переписать на паскаль!? Потому что мне ее надо накодить на Кумире а С я вообще не понимаю...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2012, 18:01     Дано четыре числа. Вывести на экран наибольшую из первых цифр заданных чисел.
Еще ссылки по теме:

Циклические вычислительные процессы (Дано натуральное число N. Вывести на экран все шестизначные числа, сумма цифр которых равна N) C++
Вывести на экран 10 первых простых чисел C++
Дано четырехзначное числ. Вывести наибольшую цифру на экран C++

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

Или воспользуйтесь поиском по форуму:
magaaa
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 3
28.11.2012, 18:01     Дано четыре числа. Вывести на экран наибольшую из первых цифр заданных чисел. #10
уже всё сам сделал) спасибо за идею решения!)
Yandex
Объявления
28.11.2012, 18:01     Дано четыре числа. Вывести на экран наибольшую из первых цифр заданных чисел.
Ответ Создать тему
Опции темы

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