C语言中的Printf混淆
我是C的初学者,我在格式化一个简单的printf函数时遇到了一些问题,这个函数需要两个整数,C语言中的Printf混淆,c,printf,C,Printf,我是C的初学者,我在格式化一个简单的printf函数时遇到了一些问题,这个函数需要两个整数,a&b,然后打印出a^2+b^2=C,我将C指定为a*a+b*b 也就是说,我不确定C的printf语句的参数是如何工作的,这是我写的: printf("%i,a ^2 + (%i,b) ^2 = %i,c", a, b, c); 这就是它正在打印的内容 3,a ^2 + (4,b) ^2 = 25,c10,a ^2 + (10,b) ^2 = 200,c 这不算太远,我只是不知道如何摆脱丑陋的变量&
a
&b
,然后打印出a^2+b^2=C
,我将C
指定为a*a+b*b
也就是说,我不确定C的printf语句的参数是如何工作的,这是我写的:
printf("%i,a ^2 + (%i,b) ^2 = %i,c", a, b, c);
这就是它正在打印的内容
3,a ^2 + (4,b) ^2 = 25,c10,a ^2 + (10,b) ^2 = 200,c
这不算太远,我只是不知道如何摆脱丑陋的变量&括号,我一直在(4,b)
这就是它应该看起来的样子。我知道我在某处也丢失了一个“\n”
3^2 + 4^2 = 25
10^2 + 10^2 = 200
您不需要在字符串中放入a
、b
、c
,因为该字符串用作模板,其中%i将被给定参数替换。您只需要按照正确的顺序将它们添加到字符串之后
所有不以
%
开头的内容都将按原样打印,就像用字母和括号打印一样。将a
放在第一个参数的引号中时,得到的是文字a
,而不是a的值
您希望执行以下操作:
printf("%i^2 + %i^2 = %i", a, b, c);
您使用的
,
符号不起作用。使用%i
作为整数的占位符,然后将整数作为单独的参数传递。因此,在我上面写的版本中,您有三个占位符,然后传入三个变量作为附加参数。您还可以使用printf(“%d^2+%d^2=%d”,a,b,c)
处理整数。如果需要分析双精度,可以使用printf(“%f^2+%f^2=%f”,a、b、c)
。我建议您阅读《C编程语言II版》,这是一本非常好的书。第七章是关于输入和输出的。所以基本上你只需要把参数a b&c放在末尾,这样它们就不会直接打印a b和c了?确切地说,只需按正确的顺序,按照你拥有的%i的相同数字排列即可。
printf("%i^2 + %i^2 = %i", a, b, c);