关于变量和函数参数使用

问题1,首先我上下文定义了X,为什么这里提示我的X是未先声明的标识符?
问题2,提示报错solidcircle函数和putpixel函数里使用两个参数,应该怎么改?

img

img


谢谢指点!

for语句结束多了一个分号
下面那段根本不是循环里,当然不认x

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    根据参考资料中的代码和问题描述,这个问题是在C语言中遇到的。

    在这个问题中,有两个小组学生,每个小组的成绩存储在一个数组中。需要编写一个函数 aver 来计算小组的平均分数,并在主函数中调用它。

    参考资料提供了三种不同的方法来实现这个问题:使用一维数组、使用指针变量和数组名作为形参、以及使用指针变量作为形参。我们可以根据需要选择其中的一种方法来解决这个问题。

    接下来我将给出三种方法的具体解决方案,并提供代码示例。

    方法一:使用一维数组作为形参

    这种方法中,函数的形参是一个数组名,实参也是一个数组名。在函数内部,可以使用下标来访问数组的元素。

    下面是用于解决这个问题的代码示例:

    #include <stdio.h>
    
    float aver(float a[], int n);
    
    int main() {
        float zu1[5], zu2[10];
        int i;
    
        printf("请输入第 1 组的学生成绩:\n");
        for (i = 0; i < 5; i++) {
            scanf("%f", &zu1[i]);
        }
    
        printf("请输入第 2 组的学生成绩:\n");
        for (i = 0; i < 10; i++) {
            scanf("%f", &zu2[i]);
        }
    
        printf("第 1 组平均分是%f\n", aver(zu1, 5));
        printf("第 2 组平均分是%f\n", aver(zu2, 10));
    
        return 0;
    }
    
    float aver(float a[], int n) {
        float sum = 0, pingjunshu;
        int i;
    
        for (i = 0; i < n; i++) {
            sum += a[i];
        }
    
        pingjunshu = sum / n;
        return pingjunshu;
    }
    

    方法二:使用指针变量和数组名作为形参

    这种方法中,函数的形参是一个指针变量,实参是一个数组名。在函数内部,可以使用指针和指针运算来访问数组的元素。

    下面是用于解决这个问题的代码示例:

    #include <stdio.h>
    
    float aver(float *p, int n);
    
    int main() {
        float zu1[5], zu2[10];
        int i;
    
        printf("请输入第 1 组的学生成绩:\n");
        for (i = 0; i < 5; i++) {
            scanf("%f", &zu1[i]);
        }
    
        printf("请输入第 2 组的学生成绩:\n");
        for (i = 0; i < 10; i++) {
            scanf("%f", &zu2[i]);
        }
    
        printf("第 1 组平均分是%f\n", aver(zu1, 5));
        printf("第 2 组平均分是%f\n", aver(zu2, 10));
    
        return 0;
    }
    
    float aver(float *p, int n) {
        float sum = 0, pingjunshu;
        int i;
    
        for (i = 0; i < n; i++) {
            sum += *(p + i);
        }
    
        pingjunshu = sum / n;
        return pingjunshu;
    }
    

    方法三:使用指针变量作为形参

    这种方法中,函数的形参是一个指针变量,实参也是一个指针变量。在函数内部,可以使用指针和指针运算来访问数组的元素。

    下面是用于解决这个问题的代码示例:

    #include <stdio.h>
    
    float aver(float *p, int n);
    
    int main() {
        float zu1[5], zu2[10];
        int i, *q, *r;
        q = zu1;
        r = zu2;
    
        printf("请输入第 1 组的学生成绩:\n");
        for (i = 0; i < 5; i++) {
            scanf("%f", q + i);
        }
    
        printf("请输入第 2 组的学生成绩:\n");
        for (i = 0; i < 10; i++) {
            scanf("%f", r + i);
        }
    
        printf("第 1 组平均分是%f\n", aver(q, 5));
        printf("第 2 组平均分是%f\n", aver(r, 10));
    
        return 0;
    }
    
    float aver(float *p, int n) {
        float sum = 0, pingjunshu;
        int i;
    
        for (i = 0; i < n; i++) {
            sum += *(p + i);
        }
    
        pingjunshu = sum / n;
        return pingjunshu;
    }
    

    请根据具体需求选择适合的解决方案,并使用相应的代码示例来解决问题。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^