![](/img/trans.png)
[英]How can I get value from multiple argument in one function and print it in main function in c?
[英]In C: How to print function argument
我想在printf命令中打印函數參數。 請幫忙建議。
void printline(char ch, int len);
value(float, float, int);
main()
{
double amount;
printline('=', 30);
amount = value(500, 0.12, 5); // I want to print argument of function value. please help
printf("The total amount is: %f \n", amount);
//printf("%f\t%f\t%d\t%f \n", 500, 0.12, 5, amount);
printline('=', 30);
_getch();
}
void printline(char ch, int len)
{
int i;
for (i = 0; i < len; i++)
printf("%c", ch);
printf("\n");
}
value(float p, float r, int n)
{
int year;
float sum;
sum = p;
year = 1;
while (year <= 5)
{
sum = sum * (1 + r);
year = year + 1;
}
return(sum);
}
在您的printline
函數中,只有一個字符作為參數。 因此,遍歷它沒有任何目的。 如果要打印string
或字符數組, char *
使用char *
或char[]
並對其進行迭代。 因此,您的函數printline
可能如下所示:
void printline(char *ch, int len)
{
int i;
for (i = 0; i<len; i++)
printf("%c", ch[i]);
printf("\n");
}
只要確保len
不大於*ch
的長度即可。
更好的解決方案是,不必擔心len
的值,那就是逐個打印字符,直到遇到\\0
字符,表示數組的末尾。
void printline(char *ch)
{
int i;
for (i = 0; ch[i] != '\0'; ++i)
printf("%c", ch[i]);
printf("\n");
}
如果字符串以null結尾,請使用
printf("%s", ch)
。 如果字符串不是以null結尾的字符串,而是提供了長度,請使用printf("%.*s", len, ch)
。 在兩種情況下,用戶代碼中都沒有循環。 循環被埋在printf()
函數內部。 此外,由於在循環后打印了換行符,因此請使用printf("%s\\n", ch)
或printf("%.*s\\n", len, ch)
並在循環后跳過多余的printf()
。
value(500, 0.12, 5); // I want to print argument of function value. please help
您可以將printf添加到函數的開頭:
value(float p, float r, int n)
{
printf("%s(%f, %f, %d)\n", __func__, f, r, n);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.