Другие языки программирования и технологии

Напишите пожалуйста задачку на С++!!

Составить программу, определяющую, в каком из данных двух чисел больше цифр. С помощью подпрограмм. Заранее спасибо!
решение задачи на С++.

с сохранением форматирования здесь: http://pastie.org/693309
без сохранения ниже.

#include <stdio.h>

int num_digits(int x) {
int num = 0;
while(1) {
num++;
x /= 10;
if(x < 1) break;
}
return num;
}

int main(int argc, char **argv) {

int a,b;
int num_a, num_b;

scanf("%d %d",&a,&b);

num_a = num_digits(a);
num_b = num_digits(b);

if(num_a > num_b) {
printf("%d содержит больше цифр: %d\n",a,num_a);
} else if(num_b > num_a) {
printf("%d содержит больше цифр: %d\n",b,num_b);
} else {
printf("количество цифр одинаковое: %d\n",num_a);
}

return 0;
}

результаты работы:

56 745
745 содержит больше цифр: 3

9237 1143
количество цифр одинаковое: 4
Сергей Зайцев
Сергей Зайцев
756
Лучший ответ
#include <stdlib.h>
#include <locale.h>

int GetDigits(int n)
{
int nRet = 0;
do {} while (++nRet, n /= 10);
return nRet;
}

int main()
{
setlocale(0, "Russian");

int A, B;

printf("Введите первое целое число - ");
scanf("%d", &A);

printf("Введите второе целое число - ");
scanf("%d", &B);

int x = GetDigits(A);
int y = GetDigits(B);
if (x < y)
{
printf("В %d меньше цифр, чем в %d\n", A, B);
}
else if (x == y)
{
printf("В %d столько же цифр, как в %d\n", A, B);
}
else
{
printf("В %d больше цифр, чем в %d\n", A, B);
}

system("pause");
return 0;
}
Дима, длину строки считывает strlen, вроде.
не помню точно как написать, но сделать можно так

определяеш два массива строковых string a[10],b[10]
считываеш с клавиатуры два числа в разные массивы scanf(a); scanf(b);
и в есть такая функция strlinc( если не ошибаюсь она подсчитывает колличество символов в стоке) , и потом сравниваеш полученные значения
Adil Kozhabergenov
Adil Kozhabergenov
963
Попробуй так студент ;) но ошибке на лету исправь а то граммотность я не помню, и цыфры вводи такие 1000 и 10 но не в коем случае ни 10 и 11

#include <stdio.h>
#include <conio.h>

char compare(int a, int b)
{
char res;
if (a > b) res = '>';
else if (a < b) res = '<';
else res = '=';
return res;
}

void main()
{
int x1, x2;
char res;

puts("ВВедеите два целых числаи нажмите большую кнопку ;)");
printf("->");
scanf("%i%i", &x1, &x2);
res = compare(x1, x2);
printf("%i %c %i\n", x1, res, x2);

puts("Долбани для завершения еще раз. ");
getch();
}