c - 在 C 中通过调用函数(按值传递)进行打印

标签 c function

我正在尝试编写一个程序,通过调用函数(按值传递而不是按地址传递)来打印金字塔。

嗯,该函数只是应该运行一个 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/

相关文章:

javascript - 需要计算按钮上的复选框单击它不起作用

java - 如何以恒定速度沿着正弦函数移动

c - 如何使用 openmp 并行化循环?

c - 如何使用 C 管理 linux tmp 空间

c - 在C中将两个字符串合并在一起,关闭字符

function - Scala 中具有重载方法的方法和函数之间的 Eta 扩展

c - 用 C 语言生成字符串组合的程序

c - malloc 和 calloc 在使用上的区别

javascript - 为什么变量定义在JS中不是挂起而是函数

C++ ptr_fun 找不到 void 参数化函数