我正在尝试编写一个程序,通过调用函数(按值传递而不是按地址传递)来打印金字塔。
嗯,该函数只是应该运行一个 for 循环来打印金字塔,但实际的打印语句写在 main.c 中。程序的其余部分看起来不错,但函数调用中有错误。
你能告诉我我做错了什么吗?这是我遇到问题的语法。错误为“void 类型的参数与‘constant char*’的参数类型不兼容”
#include<stdio.h>
void pyramid(int); //function declaration
int main()
{
int r1;
printf("Enter the number of rows you would like printed:");
scanf("%d",&r1);
printf(pyramid(r1)); //function call
return 0;
}
void pyramid(int r2) //function definition
{
int i,j;
for(i=r2;i>=1;i--)
{
for(j=r2;j<=i;j--)
{
printf("*");
}
printf("\n");
}
}
最佳答案
void pyramid(int); //function declaration
这里函数金字塔不会返回任何值,
但是您希望它在下面的语句中返回一个值
printf(pyramid(r1)); //function call
这个程序也会运行到无限循环中, 这里:
for(i=r2;i>=1;i--)
{
for(j=r2;j<=i;j--) //**j will always be less than i**
{
printf("*");
}
printf("\n");
}
关于c - 在 C 中通过调用函数(按值传递)进行打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24691024/