数组无法打印最大值

时间:2014-08-28 17:32:37

标签: c

大家好我是这个论坛的新手所以我正在寻求从C开始提高我的编程语言技能。我已经订阅了这个论坛来支持我作为指导。

我在打印这个" 数组中的最大值"时遇到了一个小问题。 ,在Ubuntu中使用gcc,请告诉我在哪里可以纠正我的错误,我为我的英语道歉,这不是我的母语。

#include<stdio.h>

int max(int a[10] ,int );
int main()
{
    int a[100];
    int i;
    int j;

    printf("enter how many  numbers that too be printed\n");
    scanf("%d",&j);

    for(i=0;i<=j-1;i++) {
        scanf("%d",&a[i]);
    }
    printf("the original is \n");
    for(i=0;i<=j-1;i++)
    {
        printf("%4d",a[i]);
    }
    printf("\n");

    printf("the maximum value is %d\n",max(a,j));
    return 0;
}

int max(int a[10] ,int b)
{ 
    int mx=0;
    int k;
    int c=0;              
    for(k=1;k<=b;k++)
    { 
        if((a[k]>a[c]) && (a[k]>mx ))
            mx=a[k];
    }
}
}
return (mx);
}

编译错误显示&#39;)&#39;虽然我已经纠正了它,但在行尾没有这个括号,即使我忽略了结果也完全不同。

2 个答案:

答案 0 :(得分:2)

你的代码中有1个缺失}。这是更正后的代码。

#include <stdio.h>

int max(int a[10], int);
int main() {
    int a[100];
    int i;
    int j;

    printf("enter how many  numbers that too be printed\n");
    scanf("%d", &j);

    for (i = 0; i <= j - 1; i++) {
        scanf("%d", &a[i]);
    }
    printf("the original is \n");
    for (i = 0; i <= j - 1; i++) {
        printf("%4d", a[i]);
    }
    printf("\n");

    printf("the maximum value is %d\n", max(a, j));
    return 0;
}

int max(int a[10], int b) {
    int mx = 0;
    int k;
    int c = 0;
    for (k = 1; k <= b; k++) {
        if ((a[k] > a[c]) && (a[k] > mx)) {
            mx = a[k];
        }
    }

    return (mx);
}

答案 1 :(得分:1)

正如您在问题中所看到的,Johnny Mopp修复了代码的缩进。

通过这样做,很容易看到在代码的最后,你有两个额外的结束括号,即无法匹配的}个字符。

您想知道这些大括号字符的正确位置。

另外,请注意它是一个额外的大括号,而不是一个额外的括号。