预期的标识符"("在C中

时间:2015-03-27 00:56:26

标签: c

这些是我得到的错误。我无法修复它们。谢谢。

lab9.c:46:2: error: expected identifier or '('
 for(i = 0; i < counter-1; i++)
 ^

lab9.c:57:1: error: expected identifier or '('
return num;
#include <stdio.h>

int sort(int numArray[], int counter);
int main(void)
{
    int numArray[100];
    int counter = 0;
    int i = 0;
    int x;
    int y;

    while (scanf("%d", &x) != EOF)
    {
        numArray[counter] = x;
        counter++;
    }

    while (i < counter && y != 0)
    { //improvement 2   
        sort(numArray, counter - i); //improvement1
        i++;
    }

    i = 0;
    while (i < counter)
    {
        printf("%d", numArray[i]);
        i++;
    }
    return 0;
}

int sort(int numArray[], int counter);
int num = 0;
int i;
int x;

for(i = 0; i < counter-1; i++)
{
    if (numArray[i] > numArray[i+1])
    {
        x=numArray[i];
        numArray[i]=numArray[i+1];
        numArray[i+1]=x;
        num++;
    }
}

return num;

1 个答案:

答案 0 :(得分:4)

你的for循环不在任何函数之内。我猜你的意思是将int num = 0return num内的所有内容都放在sort函数中。你需要将函数体包装在花括号{}中,如下所示:

int sort(int numArray[], int counter)
{
    int num = 0;
    int i;
    int x;

    for(i = 0; i < counter-1; i++)
    {
        if (numArray[i] > numArray[i+1])
        {
            x=numArray[i];
            numArray[i]=numArray[i+1];
            numArray[i+1]=x;
            num++;
        }
    }

    return num;
}