-5

我的代码中不断出现这些错误,我不确定它们的含义,有人可以向我解释它们的含义吗?

错误:

lab62.c:在函数'circumfence'中:

lab62.c:7:1:错误:在 'void' 之前需要 '='、','、';'、'asm' 或 '<strong>attribute'</p>

lab62.c:31:1: 错误:在 '{' 标记 lab62.c:40:1: 错误:预期 ' ='、','、';'、'asm' 或 '<strong>attribute' 在 '{' 标记之前

lab62.c:49:1: 错误:在 '{' 标记之前需要 '='、','、';'、'asm' 或 '<strong>attribute'

lab62.c:55:1:错误:输入结束时应为“{”

编辑:我刚刚在函数中添加了分号,现在我得到了所有这些错误

lab62.c:在函数'circumfence'中:

lab62.c:36:2:警告:格式“%f”需要“double”类型的参数,但参数 2 的类型为“float *”[-Wformat]

lab62.c:在功能“区域”中:

lab62.c:44:8: 错误:二进制 ^ 的操作数无效(有 'float' 和 'int')

lab62.c:45:2:警告:格式“%f”需要“double”类型的参数,但参数 2 的类型为“float *”[-Wformat]

lab62.c:在函数“体积”中:

lab62.c:50:8: 错误: 'v' 重新声明为不同类型的符号

lab62.c:48:19:注意:之前对“v”的定义在这里

lab62.c:52:31: error: 'r' undeclared (第一次在这个函数中使用)

lab62.c:52:31:注意:每个未声明的标识符对于它出现的每个函数只报告一次

lab62.c:54:2:警告:格式“%f”需要“double”类型的参数,但参数 2 的类型为“float *”[-Wformat]

源代码:

#include <stdio.h>
#include <math.h>
#define pi 3.147

void circumfrence(float r)
void area(float r)
void volume(float r)

int main()
{
    void (*f[3])(float) = { circumfrence, area, volume };
    int choice;
    float r;
    printf("enter a value for the radius\n");
    scanf("%f", &r);
     printf("enter a number between 0 and 2, 3 to end: ");
    scanf("%d", &choice);

    while(choice >= 0 && choice < 3) {
        (*f[choice])(r);
        printf("enter a number between 0 and 2, 3 to end: ");
        scanf("%d", &choice);
    }
    printf("program execution completed\n ");
    return 0;
}

void circumfrence(float r)
{
    float c;
    printf("you wish to process the area");
    printf("the radius is %f: ", r);
    c = (2*r)*pi;
    printf("%f", &c);
}

void area(float r)
{
    float a;
    printf("you wish to process the volume");
    printf("the radius is %f: ", r);
    a = (r^2)*pi;
    printf("%f", &a);
}

void volume(float v)
{
    float v;
    printf("you wish to process the circumfrence");
    printf("the radius is %f: ", r);
    v = (4/3)*(r^3)*(pi);
    printf("%f", &v);
}
4

1 回答 1

1

您忘记;在代码中开头的三个函数声明之后添加一些分号。正确的代码是这样的:

void circumfrence(float r);
void area(float r);
void volume(float r);

编辑:在第 44 行,你不能^在 C 中使用你想要的东西。您可以使用a = (r*r)*pi;or a = pow(r,2)*pi;Also,第 53 行中的相同内容。

在第 50 行,您重新声明了v变量。f参数和f变量之间存在混淆。您需要v在第 50 行使用另一个名称。

编辑2:

当你想打印值时,你不需要使用引用。使用 时printf,不要&在变量前面加上 a。像这样做:

printf("%f\n", c);
printf("%f", a);
printf("%f", v);
于 2012-04-21T05:38:45.440 回答