编译C程序时不断出错:(

时间:2012-03-31 03:37:11

标签: c

在编程时我完全没用,所以记住这一点!

我们必须编写一个生成两个随机数的代码,然后将这两个随机数传递给一个生成然后返回总和的函数。提示学生回答问题,如果他们弄错了,程序应该循环直到他们做对了,如果他们是正确的,程序应该循环并提出另一个问题。

当我编译时,我不断收到这些错误:

multi.c: In function ‘multiply’:
multi.c:6:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
multi.c:27:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
multi.c:31:1: error: expected ‘{’ at end of input

这是我的代码,有人可以帮助我:

#include <stdio.h>

int multiply(int x, int y)

int main()
{
    int multiply(int x, int y);
    int x = rand()%20;
    int y = rand()%20;
    int i, answer;
    i = multiply(x,y);

    printf("what is %d multiplied by %d\n?" x, y);
    scanf("%d\n", &answer);

    while(answer != i)
    {
        printf("wrong try again!");
        scanf("%d\n", &answer);
    }

    printf("very good!");
}

int multiply(int x, int y)
{
    int k;
    (x*y = k);
    return k;
}

3 个答案:

答案 0 :(得分:6)

第27行x*y = k的作业应为k = x*y

第6行int multiply(int x, int y)后缺少分号。

第13行的字符串文字后面缺少昏迷:

printf("what is %d multiplied by %d\n?" /* here */ x, y);

答案 1 :(得分:2)

int multiply(int x, int y)

缺少分号。


int multiply(int x, int y);

您无法在函数体内声明函数。只需删除此行即可。


(x*y = k);

你的任务倒退了。 k = x * y;是正确的。

答案 2 :(得分:0)

int multiply(int x, int y);

为什么在main()中有这个?你不能在函数内部有函数原型。