Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/16: Рейтинг темы: голосов - 16, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 16.04.2010
Сообщений: 19
1

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

08.05.2010, 22:32. Показов 3342. Ответов 9
Метки нет (Все метки)

Люди помогите, пожалуйста.
Дана такая задача:
Дано четыре числа. Вывести на экран наибольшую из первых цифр заданных чисел. Например, если 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;
}
но у меня выдаётся куча ошибок.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.05.2010, 22:32
Ответы с готовыми решениями:

Вывести на экран наибольшую из первых цифр заданных чисел
1) Вводится 4 числа. Вывести на экран наибольшую из первых цифр заданных чисел. Например, если...

Вывести на экран наибольшую из первых цифр заданных чисел, используя подпрограмму поиска цифры в числе
1.Даны два трехзначных числа. Вывести на экран наибольшую из первых цифр заданных чисел, использую...

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

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

9
This party getting crazy!
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
08.05.2010, 23:24 2
Идея бредовая конечно. Низкоуровневая так сказать. Разбей на сотни, деятки и целые, а потом сравни, что больше, то и выведи.
1
0 / 0 / 0
Регистрация: 16.04.2010
Сообщений: 19
09.05.2010, 00:40  [ТС] 3
Цитата Сообщение от Bloodykeeper Посмотреть сообщение
Разбей на сотни, деятки и целые, а потом сравни, что больше, то и выведи.
А не подскажете как это сделать?
0
Шаровик затейник
693 / 442 / 78
Регистрация: 06.05.2010
Сообщений: 1,109
09.05.2010, 00:52 4
ну для примера с числом а:
if(a<=100)
a/=100;
if(a<=1000)
a/=1000;

тут даже не нужен массив char просто используй int
1
Эксперт С++
3943 / 1798 / 184
Регистрация: 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;
}
//---------------------------------------------------------------------------
1
Эксперт С++
2337 / 1710 / 148
Регистрация: 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;
}
1
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
11032 / 6984 / 1651
Регистрация: 25.07.2009
Сообщений: 12,738
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;
}
1
0 / 0 / 0
Регистрация: 16.04.2010
Сообщений: 19
10.05.2010, 00:27  [ТС] 8
Спасибо! Вроде бы разобрался.
0
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 3
27.11.2012, 10:55 9
Здравствуйте!) а не могли бы вы эту задачу переписать на паскаль!? Потому что мне ее надо накодить на Кумире а С я вообще не понимаю...
0
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 3
28.11.2012, 18:01 10
уже всё сам сделал) спасибо за идею решения!)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.11.2012, 18:01

Вывести на экран 5 первых цифр числа
собственно дано любое число, необходимо вывести на экран первые 5 его цифр. напишите кто знает)

Дано натуральное число N (N<10^255). Вывести на экран количество цифр числа N и сумму его цифр
Дано натуральное число N (N&lt;10^255). Вывести на экран количество цифр числа N и сумму его цифр.

Даны четыре натуральных числа. Вывести на экран то из них, сумма цифр которого – наибольшая
составить программу 2 способами: 1) с использование процедур 2) с использованием функций

Даны четыре натуральных числа. Вывести на экран то из них, сумма цифр которого - наибольшая
На языке Паскаль решить 2 способами: 1) с использованием процедур; 2) с использованием функций....

Даны четыре числа a, b, c, d .Вывести на экран количество пар равных чисел
Даны четыре числа a, b, c, d .Вывести на экран количество пар равных чисел

Найти наибольшую среди первых цифр чисел
Дано 4 числа. найти первую цифру этих чисел и найти из этих 1 цифр найбольшую.(нужно зделать 2...


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

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

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