я не понимаю, почему ответ приходит как 5, я напишу программу ниже - PullRequest
1 голос
/ 20 января 2011
#include<stdio.h>
void main()
{
 int cats,dogs,others,total_pets;
 cats=10;
 dogs=43;
 others=36;
 total_pets=cats+dogs;
 printf("there are %c  total pets are",total_pets);
}

Ответы [ 8 ]

10 голосов
/ 20 января 2011

Используйте %d вместо %c в printf.

Значение total_pet равно 53.Когда вы используете %c в printf, вы пытаетесь напечатать символ, значение которого ASCII , если 53, это 5.

4 голосов
/ 20 января 2011

См. Таблицу ASCII: http://web.cs.mun.ca/~michael/c/ascii-table.html

А зачем это печатать 5: -

На самом деле это '5', а не 5. Ваш код печатает символ 5, а не десятичный 5. Когда вы используете% c для вывода значения целочисленной переменной, printf преобразует целочисленное значение в символьный эквивалент (как вы видели в таблице ASCII) .

Вы можете попробовать этот код (или написать свой) void main() { int num; printf("Printing ASCII values Table...\n\n"); num = 1; while(num<=255) { // here you can see how %c and %d works for same variable printf("\nValue:%d = ASCII Character:%c", num, num); num++; } printf("\n\nEND\n"); }

Удачного кодирования.

3 голосов
/ 20 января 2011

Почему вы форматируете его как% c Используйте% d

printf ("всего% d всего домашних животных", total_pets);

2 голосов
/ 20 января 2011

%c - это спецификатор символа, поэтому printf("there are %c total pets are",total_pets); печатает символ ascii со значением 53, которое является символом 5.

2 голосов
/ 20 января 2011

Потому что 53 - это место в таблице ASCII, где стоит «5».

Вместо этого используйте% d в вашем printf.

2 голосов
/ 20 января 2011

почему вы используете %c. используйте %d

%c single character
%d and %i both used for integer type
%u used for representing unsigned integer
%o octal integer unsigned
%x,%X used for representing hex unsigned integer
%e, %E, %f, %g, %G floating type
%s strings that is sequence of characters
1 голос
/ 20 января 2011

Вам нужно изменить %c на %d.

1 голос
/ 20 января 2011

% c - печать символа. Попробуйте изменить его на% d для целочисленного значения.

То, что вы печатаете, является целочисленным значением, интерпретируемым как символ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...