Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Sylar9
135 / 56 / 13
Регистрация: 04.09.2011
Сообщений: 1,952
Записей в блоге: 1
1

Определить, какая цифра в числе есть большей – первая или последняя

08.11.2011, 17:04. Просмотров 1161. Ответов 12
Метки нет (Все метки)

Наткнулся на задачу
вот задача: Задано трицифровое число. Определить, какая цифра в нем есть большей – первая или последняя.

кто как ее реализовал бы я так реализовал???
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
int main()
{
int m[3];
int max;
int tmp[0];
for(int i=0;i<3; i++)
{
cin>>m[i];
max=0;
if(m[i]>max) max=i;
 
}
cout <<"MAX="<< m[max] <<endl;
 
system("pause");
return 0;
}
Просто я не уверен что она правильная
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2011, 17:04
Ответы с готовыми решениями:

Дано трехзначное число. Определить, какая цифра в нем есть больше – первая или последняя.
задано трицифровое число. Как определить, какая цифра в нем есть большей –...

Задан трехзначное число. Определить, какая из его цифр больше: первая или последняя
Задан трехзначное число. Определить, какая из его цифр больше: первая или...

Задано трехзначное число. Определить, какая из его цифр больше: первая или последняя.
Задано трехзначное число. Определить, какая из его цифр больше: первая или...

Если в нем есть цифра a и b, то определить, какая из них расположена в числе правее
??? ((( Дано натуральное число. Если в нем есть цифра a и b, то определить,...

Определить, какая цифра расположена в числе левее: максимальная или минимальная
Помогите решить задач из задачника Златопольского. дано натуральное число, в...

12
vndtta
90 / 67 / 21
Регистрация: 17.10.2011
Сообщений: 235
Завершенные тесты: 1
08.11.2011, 17:10 2
Цитата Сообщение от Sylar9 Посмотреть сообщение
Наткнулся на задачу
вот задача: Задано трицифровое число. Определить, какая цифра в нем есть большей – первая или последняя.

кто как ее реализовал бы я так реализовал???
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
int main()
{
int m[3];
int max;
int tmp[0];
for(int i=0;i<3; i++)
{
cin>>m[i];
max=0;
if(m[i]>max) max=i;
 
}
cout <<"MAX="<< m[max] <<endl;
 
system("pause");
return 0;
}
Просто я не уверен что она правильная
ошибка вроде
C++
1
if (m[i]>m[max]) max=i;
0
Sylar9
135 / 56 / 13
Регистрация: 04.09.2011
Сообщений: 1,952
Записей в блоге: 1
08.11.2011, 17:12  [ТС] 3
Цитата Сообщение от vndtta Посмотреть сообщение
ошибка вроде
C++
1
if (m[i]>m[max]) max=i;
да нет код работает правельно
0
mimicria
return (true);
1960 / 1097 / 219
Регистрация: 19.04.2011
Сообщений: 2,345
08.11.2011, 17:13 4
Цитата Сообщение от Sylar9 Посмотреть сообщение
for(int i=0;i<3; i++) { cin>>m[i]; max=0; if(m[i]>max) max=i; }
У вас в цикле всегда max=0
0
Sylar9
135 / 56 / 13
Регистрация: 04.09.2011
Сообщений: 1,952
Записей в блоге: 1
08.11.2011, 17:17  [ТС] 5
Цитата Сообщение от mimicria Посмотреть сообщение
У вас в цикле всегда max=0
На верно. я тока начел учить С++
0
mimicria
return (true);
1960 / 1097 / 219
Регистрация: 19.04.2011
Сообщений: 2,345
08.11.2011, 17:19 6
Цитата Сообщение от Sylar9 Посмотреть сообщение
На верно.
Не на верно, а то чно.
C++
1
2
3
cin>>m[i]; // ввели m[i]
max=0; // приравняли макс к 0
if(m[i]>max) max=i; // изменили макс, но на следующем шаге цикла до сравнения макс опять станет нулевым
0
CoVeReTeSS
3 / 3 / 3
Регистрация: 24.03.2011
Сообщений: 99
08.11.2011, 17:21 7
Я бы делал все с помощью стринга, а потом по сабстрингам проверял,чтобы пользователь не нажимал несколько раз enter
У вас по-моему есть ошибка
int m[3]-в нем четыре элемента в с++ начинается все с m[0],
и если вам надо сравнивать первый и последний элемент массива, не делай в цикле дофига сравнений,
просто предположи, что первый-максимальный, а потом сравни с другим, или просто тупо сравни. И еще лучше не использовать все пространство имен std слишком нагружаешь прогу.
по-вашему я бы написал так,
1)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
int m[2];
int max;
for(int i=0;i<3;i++)
{
cin>>m[i];
}
max=m[0];
if(m[2]>max)
{
m[2]=max;
}
cout<<"max= "<<max<<endl;
system("pause")
return 0;
}
если хотите могу отослать вариант с string и substring
0
Abendstern
3 / 3 / 2
Регистрация: 06.11.2011
Сообщений: 38
08.11.2011, 17:22 8
Хм... как я понял надо сравнить только первую и последнюю цифру числа? Тогда зачем проверку в цикле делать?

C++
1
std::cout << (m[2] > m[0] ? m[2] : m[0]);
И вообще, обязательно нужно число в виде массива хранить?
0
CoVeReTeSS
3 / 3 / 3
Регистрация: 24.03.2011
Сообщений: 99
08.11.2011, 17:25 9
Цитата Сообщение от Abendstern Посмотреть сообщение
Хм... как я понял надо сравнить только первую и последнюю цифру числа? Тогда зачем проверку в цикле делать?

C++
1
std::cout << (m[2] > m[0] ? m[2] : m[0]);
И вообще, обязательно нужно число в виде массива хранить?
тоже самое уже сказал
0
Abendstern
3 / 3 / 2
Регистрация: 06.11.2011
Сообщений: 38
08.11.2011, 17:27 10
CoVeReTeSS, а у вас всегда m[0] на экран выводится... и размер массива слишком маленький

int m[3] - это массив как раз из трёх элементов, а не четырёх, m[0], m[1] и m[2]
0
CoVeReTeSS
3 / 3 / 3
Регистрация: 24.03.2011
Сообщений: 99
08.11.2011, 17:30 11
Цитата Сообщение от Abendstern Посмотреть сообщение
CoVeReTeSS, а у вас всегда m[0] на экран выводится... и размер массива слишком маленький
суть программы сравнение сотых и единиц, какая цифра больше, ошибку заметил с мах спасибо.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
int m[3];
int max;
for(int i=0;i<3;i++)
{
cin>>m[i];
}
max=m[0];
if(m[2]>max)
{
max=m[2];
}
cout<<"max= "<<max<<endl;
system("pause")
return 0;
}
0
Abendstern
3 / 3 / 2
Регистрация: 06.11.2011
Сообщений: 38
08.11.2011, 17:30 12
Вообще я бы сделал что-нибудь типа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
int main()
{
    int x;
    std::cin >> x;
 
    if(x / 100 > x % 10)
        std::cout << x / 100;
    else 
        std::cout << x % 10;
 
    return 0;
}
Хотя тут избыточные расчёты, это наверное не очень хорошо
0
!Андрей!
6 / 6 / 1
Регистрация: 31.01.2012
Сообщений: 134
03.01.2013, 03:44 13
Цитата Сообщение от Sylar9 Посмотреть сообщение
На верно. я тока начел учить С++
Начните пожалуй с изучения основ русского языка
0
03.01.2013, 03:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.01.2013, 03:44

Определить, какая цифра в числе расположена левее: Максимальная или минимальная
Привет всем, вот задание: Дано натуральное число, в котором все цифры различны....

Определить, какая цифра расположена в заданном числе левее: максимальная или минимальная
Дано натуральное число, в котором все цифры различны. Определить, какая цифра...

Использование условного оператора. Определить, какая цифра встречается в заданном числе чаще: 0 или 9
Дано натуральное число. Определить какая цифра встречается чаще: 0 или 9


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

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

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