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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 5.00
AI-99
0 / 0 / 0
Регистрация: 16.04.2010
Сообщений: 19
#1

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

08.05.2010, 22:32. Просмотров 2433. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2010, 22:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Дано четыре числа. Вывести на экран наибольшую из первых цифр заданных чисел. (C++):

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

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

Дана последовательность n натуральных чисел. Для каждого числа вычислить количество его цифр и сумму этих цифр. Вывести на экран каждое число, количес - C++
Дана последовательность n натуральных чисел. Для каждого числа вычислить количество его цифр и сумму этих цифр. Вывести на экран каждое...

Вывести на экран 1 или 0 в зависимости от того, есть ли среди первых трех цифр дробной части заданного положительного вещественного числа цифра ноль - C++
Вывести на экран 1 или 0 в зависимости от того, есть ли среди первых трех цифр дробной части заданного положительного вещественного числа...

Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N-1, у которых произведение цифр совпадает с произведением цифр данного числа - C++
Помогите, пожалуйста!!! А то у меня не получается( Написал программу, когда ввожу число 32 как в примере выводит только 16, а 6 и 23 не...

Вывести на экран все двузначные числа, делящиеся на каждую из своих цифр и подсчитать количество таких чисел - C++
Составить программы для решения следующих задач (выполните задание двумя способами: с использованием одного цикла и с использованием...

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

тут даже не нужен массив char просто используй int
1
MikeSoft
Эксперт С++
3801 / 1777 / 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;
}
//---------------------------------------------------------------------------
1
CyBOSSeR
Эксперт С++
2303 / 1673 / 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;
}
1
easybudda
Модератор
Эксперт CЭксперт С++
9683 / 5633 / 956
Регистрация: 25.07.2009
Сообщений: 10,813
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
AI-99
0 / 0 / 0
Регистрация: 16.04.2010
Сообщений: 19
10.05.2010, 00:27  [ТС] #8
Спасибо! Вроде бы разобрался.
0
magaaa
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 3
27.11.2012, 10:55 #9
Здравствуйте!) а не могли бы вы эту задачу переписать на паскаль!? Потому что мне ее надо накодить на Кумире а С я вообще не понимаю...
0
magaaa
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 3
28.11.2012, 18:01 #10
уже всё сам сделал) спасибо за идею решения!)
0
28.11.2012, 18:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2012, 18:01
Привет! Вот еще темы с ответами:

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

дано натуральное число N. Определить,во сколько раз произведение цифр числа больше суммы цифр.Найти количество чётных цифр в записи числа!! - C++
дано натуральное число N. Определить,во сколько раз произведение цифр числа больше суммы цифр.Найти количество чётных цифр в записи числа!!...

Вывести на экран 10 первых простых чисел - C++
Вывести на экран 10 первых простых чисел. Числа хранить в массиве. Проверку, является ли число простым, оформить в виде функции.

вывести на экран n первых чисел Фибоначчи - C++
Помогите написать программу в Visual Studio 2008. Вывести на экран n первых чисел Фибоначчи. Для вычисления n-го числа использовать...


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

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

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