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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.71
SZ
2 / 2 / 0
Регистрация: 16.11.2008
Сообщений: 44
#1

Сравнение цифр в числе - C++

06.12.2008, 10:13. Просмотров 3141. Ответов 7
Метки нет (Все метки)

Подскажите, как сравнивать цифры в числе. Пытался в массив перевести, но не получилось. Пытался просто число в символьный перевести и вывести на экран, программа выдала об ошибке. Мне код не нужен. Наведите на мысль, как это можно сделать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2008, 10:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сравнение цифр в числе (C++):

Сравнение цифр в n-значном числе - C++
int x, y, n=99; for(int i = 0; i <= n; i++) // проход по всем числам в интервале, включая границы { x = i / 10; // старший знак -...

не могу никак найти сравнение цифр в числе - C++
народ помогите с индексами в массиве, надо сделать задачку в массиве из 4 индексов например 13 2 45 19 нужно из каждого индекса найти...

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

Определить количество цифр в числе n и сумму всех его цифр - C++
Дано натуральное n , определить количество цифр в числе n и сумму всех его цифр. Значение n ввести с клавиатуры. Добавлено через...

Определить сколько цифр в заданном числе, найти сумму цифр, и последнюю цифру - C++
дано натуральное число n (n<10000). определить сколько цифр, найти сумму цифр, и последнюю цифру. Не могу сообразить где косяк вышел ...

С клавиатуры вводится положительное натуральное число. Определить количество цифр в числе (сумму цифр) - C++
С клавиатуры вводится положительное натуральное число. Определить количество цифр в числе (сумму цифр)

7
morf
6 / 4 / 2
Регистрация: 05.12.2008
Сообщений: 12
06.12.2008, 12:48 #2
хм..... Интересно как могло не получиться перевести число в строку..........
Попробуй в while пока число не станет равным нулю сначала "отсекать" последнюю цифру находя остаток от деления на 10 и запоминая его и деля само число на 10.
Получаешь набор цифр составляющих число. Начиная с младшего разряда.
Такое всегда работало.
1
SZ
2 / 2 / 0
Регистрация: 16.11.2008
Сообщений: 44
06.12.2008, 22:33  [ТС] #3
Цитата Сообщение от morf Посмотреть сообщение
хм..... Интересно как могло не получиться перевести число в строку..........
Попробуй в while пока число не станет равным нулю сначала "отсекать" последнюю цифру находя остаток от деления на 10 и запоминая его и деля само число на 10.
Получаешь набор цифр составляющих число. Начиная с младшего разряда.
Такое всегда работало.
Не, получилось. Я потом ошибку нашел, и мне выдавало символ кодовой таблицы, когда я говорил ему сначала преобразовать число в char, а потом вывести на экран как один символ. А за совет спасибо. По-моему все даже очень легко. Надо будет, как я понял, в массив загнать число, и там оно вверх тормашками: если было 321, то тогда будет 123.

Добавлено через 1 час 51 минуту 51 секунду
Ладно. Самому как-то все равно не получается. Написал код. Но он для всех пишет, что все существует. Задача полностью: "Написать программу, запрашивающую с клавиатуры два целых числа 'a' и 'b' и определяющую, есть ли в сумме этих числе две
идущие подряд одинаковые цифры. Например, для a=100 и b=10 ответ \есть\, для a=111 b=10 ответ \нет\"

Вот код:

Код
#include<stdio.h>
void main()
{
	int a,b,i,c,X[100];
	printf("Enter A\n");
             scanf("%d",&a);
	printf("Enter B\n");
	scanf("%d",&b);
             c=a+b;
	i=0;
	while(c=0)
	{
		X[i]=c%10;
		c=c/10;
		if(c<10) X[i]=c;
		i++;
	}
             for(i=0;;i++)
		if(X[i]==X[i+1])
		{
			printf("Exists ");
			break;
		}
}
По мне так все логично. Но все равно неправильно. Помогите разобраться.
0
morf
6 / 4 / 2
Регистрация: 05.12.2008
Сообщений: 12
06.12.2008, 22:36 #4
В целом всё верно, но есть определённые косяки.
Вот рабочий код:
Код
#include<stdio.h>
void main()
{
	int a,b,i,c,X[100]={0};
	printf("Enter A\n");
			 scanf("%d",&a);
	printf("Enter B\n");
	scanf("%d",&b);
			 c=a+b;
	i=0;
	while(c!=0)
	{
		X[i]=c%10;
		c=c/10;
		i++;
		if(c<10) X[i]=c;
	}
	for(;i>0;i--)
		if(X[i]==X[i-1])
		{
			printf("Exists ");
			return;
		}
		printf("Not exists ");
		return ;
}.
Если чтото не понятно и есть вопросы, то ICQ: 740-76-61
1
SZ
2 / 2 / 0
Регистрация: 16.11.2008
Сообщений: 44
06.12.2008, 23:54  [ТС] #5
Пашет.
0
NAG
8 / 8 / 1
Регистрация: 15.03.2009
Сообщений: 267
15.03.2009, 14:31 #6
а можно и так:
a>b?"а больше":"б больше"
0
EnzoMatrix
120 / 120 / 5
Регистрация: 14.03.2009
Сообщений: 462
15.03.2009, 23:42 #7
Цитата Сообщение от NAG Посмотреть сообщение
а можно и так:
a>b?"а больше":"б больше"
нужно сравнить не два числа а и b , а цифры внутри числа
0
G-Cat
16 / 16 / 1
Регистрация: 15.03.2009
Сообщений: 94
16.03.2009, 01:11 #8
вот мой код, просто вводишь число и он указывает наименьшую цифру в числе:

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
46
47
48
49
50
51
52
53
54
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{ 
    int chislo, nuli, cifr, rab, min, minadr, i, ser;
    
    cin >> chislo;
    
    rab = chislo;
    cifr = 0;
    
    while (rab > 0)
    {
          rab = rab / 10;
          cifr++;
    }
    
    nuli = 1;
    for (i = 0; i < cifr - 1; i++)
    {
        nuli = nuli * 10;
    }
    
    min = chislo / nuli;
    minadr = 1;
    
    for (i = 2; i < cifr; i++)
    {
        nuli = nuli / 10;
        ser = (chislo / nuli) % 10;
        
        if (min > ser)
        {
                min = ser;
                minadr = i;
        }
        
    }
    
    if (min > chislo % 10)
    {
            min = chislo % 10;
            minadr = cifr;
    }
    
    cout << "Naimenshia cifra: " << min << "\n";
    cout << "Ee mesto: " << minadr << "\n";
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
1
16.03.2009, 01:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.03.2009, 01:11
Привет! Вот еще темы с ответами:

Напишите программу, выводящую на экран количество цифр в этом числе и сумму этих цифр - C++
я начинающий! помогите! мне на екзам! Дано натуральное число а (a&lt;100). Напишите программу, выводящую на экран количество цифр в этом...

Определить сколько цифр в заданном натуральном числе, и чему равна сумма его цифр - C++
Дано натуральное число n (n&lt;=100). Определить сколько цифр в числе n, чему равна сумма его цифр.

Найти сумму цифр двух целых двухзначных чисел a и b, написав функцию определения цифр в числе - C++
Найти сумму цифр двух целых двухзначных чисел a и b, написав функцию определения цифр в числе.

Дано натурально число n. Сколько цифр в этом числе. Чему равняется сумма цифр. Найти первую цифру - C++
Желательно в С


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

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

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