繁体   English   中英

C语言中的Printf混乱

[英]Printf confusion in C

我是C的初学者,在格式化一个简单的printf函数时遇到了一些麻烦,该函数需要两个整数ab并打印出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
printf("%i^2 + %i^2 = %i\n", a, b, c);

您不需要在字符串中放入abc ,因为该字符串用作模板,其中%i将用给定的参数替换。 您只需要按正确的顺序将它们添加到字符串后即可。

不以%开头的所有内容都将按原样打印,如字母和括号所示。

当您在第一个参数的引号中加上a ,将得到字面量a ,而不是a的值。

您想做这样的事情:

printf("%i^2 + %i^2 = %i", a, b, c);

,a你必须标记不起作用。 您将%i用作整数的占位符,然后将整数作为单独的参数传递。 因此,在我上面写的版本中,您有三个占位符,然后传入三个变量作为附加参数。

您也可以对整数使用printf("%d^2 + %d^2 = %d", a, b, c) 如果需要解析双精度数,则可以使用printf("%f^2 + %f^2 = %f", a, b, c) 我建议您阅读“ C编程语言II版”这本非常不错的书。 第七章是关于输入和输出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM