Mayvis 39 Ответов: 2

Вопрос Begineer примерно рассчитывать


В справочнике показано, что ответ таков
h(g) = 3.1415e-005
count = 18

но мой ответ таков
h(g) = 3.1415e-005count = 0

#include <stdio.h>
int main()
{
	int count, a = 2046;
	short b = 234;
	long c = 5555;
	unsigned int d = 1234;
	char e = 'z';
	float f = 3.14159f;
	double g = 3.1415926535898;
	double h = 3.1415e-5;
	
	printf("a(d) = %d\n", a);
	printf("a(o) = %o\n", a);
	printf("a(x) = %x\n", a);
	printf("b(d) = %d c(d) = %d\n", b, c);
	printf("d(u) = %u\n", d);
	
	printf("e(c) = %c\n", e);
	
	printf("f(f) = %f\n", f);
	printf("g(f) = %f\n", g);
	printf("g(e) = %e\n", g);
	printf("g(g) = %g\n", g);
	printf("h(f) = %f\n", h);
	printf("h(e) = %e\n", h);
	printf("12345678901234567890\n");
	printf("h(g) = %g%n\n", h, &count);
	printf("count = %d\n", count);
	printf("b(d) = %d f(f) = %f\n", b, f);
	
	return 0;
}


Что я уже пробовал:

удалить %n и & in
printf("h(g) = %g%n\n", h, &count);

2 Ответов

Рейтинг:
5

CPallini

Программа

#include <stdio.h>
int main()
{
  double h = 3.1415e-5;
  int count;

  printf("h(g) = %g%n\n", h, &count);
  printf("count = %d\n", count);
  return 0;
}


Выходы
h(g) = 3.1415e-05
count = 17


На моем Linux коробка (gcc 5.4.0).


Mayvis 39

Спасибо.

Mayvis 39

Возможно, IDE вызывает эту проблему.

Рейтинг:
14

Peter_in_2780

Нигде вы не назначаете значение для подсчета, поэтому оно остается на случайно инициализированном vaue, равном нулю.


barneyman

Ага - я тоже это видел - но %п док бы как возвращение 'символы е, что пока - пока !

Peter_in_2780

Хммм. Я скучал по этому. Возможно, у OP есть несоответствующая реализация, но я думаю, что это довольно маловероятно.

Mayvis 39

Прежде всего, спасибо за ваш ответ. Могу ли я задать еще один вопрос о том, как я могу показать символ h(g) в формате %n с помощью &count?

Peter_in_2780

Согласно моему прочтению стандарта, он должен выдавать что-то вроде "count = 11" (11 символов в том, что он напечатал для h(g) ). Возможно, это ошибка в вашей библиотеке компилятора/среды выполнения. Что вы используете?

Mayvis 39

Ответ я получил ниже. Кстати, я попробую ваше предложение. Спасибо.