2015-08-23 4 views
-1
void main() 
{ 

    int u, t, h ; 

    printf("\n Enter a number (with 3 digits) \n"); 

    printf("\n Enter the unit digit number \n"); 

    scanf("%d",&u); 

    printf("\n Enter the tenth digit number \n"); 

    scanf("%d",&t); 

    printf("\n Enter the hundredth digit number \n"); 

    scanf("%d",&h); 

} 

Я хочу их в порядке, как если пользовательский ввод u, как 1, t, как 2 и h в 3, то после конкатенации он должен напечатать 321 вместе как одно целое число.Как объединить три целых чисел в C

+0

Обратите внимание на обсуждение в [Что должен 'главный()' возвращение в C и C++] (http://stackoverflow.com/questions/204476/c/18721336#18721336). Вы должны проверять каждый из входов - гарантируя, что 'scanf()' возвращает значение, а также проверяет, что введенное значение находилось в диапазоне 0..9 как значения вне этого диапазона (отрицательные числа или числа в десятках , сотни, тысячи, миллионы или миллиарды выкинут любые расчеты). OTOH, вы все еще можете изучать основы, и такие тонкости еще не достигнуты. Если это так, помните, что это игрушечный код, нуждающийся в большом улучшении. –

ответ

2

С помощью этого решения финальная строка, хранящаяся в str, переносится по всей вашей программе.

char str[16]; 
sprintf(str, "%d", (h*100) + (t*10) + u); 
printf("%s\n", str); 
2

Почему бы не просто их умножить?

printf("%d\n", 100 * h + 10 * t + u); 

Примите во внимание, что, как только одна цифра читается для каждого номера можно было бы написать, например

scanf("%1d", &u); 
     ^^ 
1

это не работает?

printf("%d%d%d", h,t,u); 
+0

запятые встают между тем, что я пробовал –

+0

Это будет работать так, что он будет генерировать требуемый 321 выход (если только рецепт не должен печатать 321 вместе как одно целое число «исключает его»). Неясно, что это за проблема @ MehulChachada. –

Смежные вопросы