gpt4 book ai didi

c - "variable"未在此范围内声明 [C]

转载 作者:行者123 更新时间:2023-11-30 21:17:33 26 4
gpt4 key购买 nike

编译 main 时出现以下 3 个错误:

[Error]"media" was not declared on this scope

[Error]"max" was not declared on this scope

[Error]"min" was not declared on this scope

[Error]"calc" was not declared on this scope

我需要扫描main内部然后使用该函数吗?

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

typedef struct{
char name[50];
float medias;
}DATA;

DATA *p;


float calc(DATA *p,float media, float max, float min)
{
int a;
max=0;
min=20;
float soma=0;
for(a=0; a<3; a++)
{
printf("\nWrite the score of your %dº test: ", a+1);
scanf("%f", p->medias);
if (p->medias>max){
max=p->medias;
}
if (p->medias<min){
min=p->medias;
}
soma=soma+p->medias;
}
media=soma/3;
return p, media, max, min;
}

int main()
{
calc(p, media, max, min);
system("cls");
printf("Higher score: %f \nLowest score: %f \nMedia: %f", max, min, media);
getch();
}

最佳答案

您尚未声明变量mediamaxmin。它们要么需要在 main 中是本地的,要么是全局的。一般来说,最好将它们作为 main 中的本地变量,包括您已将其设置为全局但随后作为参数传递的 p

在您的程序中,mediamaxmincalc 中的参数。事实上,这些变量只能在 calc 内部使用。

Do I need to scan inside the main and then use the function?

如果您的意思是 scanf() 从键盘输入读取值,可能是的。这实际上取决于您的需要。

但是,虽然您肯定需要首先声明变量,但您也会覆盖 calc 内部参数的值,忽略传递给函数的任何值。

float calc(DATA *p,float media, float max, float min)
{
int a;
max=0;
min=20;

关于c - "variable"未在此范围内声明 [C],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39850767/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com