大家好我是这个论坛的新手所以我正在寻求从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;虽然我已经纠正了它,但在行尾没有这个括号,即使我忽略了结果也完全不同。
答案 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修复了代码的缩进。
通过这样做,很容易看到在代码的最后,你有两个额外的结束括号,即无法匹配的}
个字符。
您想知道这些大括号字符的正确位置。
另外,请注意它是一个额外的大括号,而不是一个额外的括号。