Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 调用函数的二维数组的和_C - Fatal编程技术网

C 调用函数的二维数组的和

C 调用函数的二维数组的和,c,C,我试图创建一个程序,通过调用一个名为sum的函数来查找单个二维数组的和。但是我遇到了一个错误,丢失了一个{但是我不确定这是怎么回事 #include <stdio.h> int sum(int s[3][4]) int main(int argc, char *argv[]) { int s[3][4], c, r, sum = 0; for (r = 0; r <= 2; r++) { for (c = 0; c <= 3; c++) {

我试图创建一个程序,通过调用一个名为sum的函数来查找单个二维数组的和。但是我遇到了一个错误,丢失了一个{但是我不确定这是怎么回事

#include <stdio.h>

int sum(int s[3][4])
int main(int argc, char *argv[])
{
int s[3][4], c, r, sum = 0;

for (r = 0; r <= 2; r++)
{
    for (c = 0; c <= 3; c++)
    {
        printf("Enter value for s[%d][%d]: ", r, c);
        scanf("%d", &s[r][c]);
    }
}
printf("The sum is: %d\n", sum(s[3][4]);
return 0;
}

int sum (int s[3][4])
{
for (r = 0; r <= 2; r++)
{
    for (c = 0; c <= 3; c++)
    {
        sum = s[r][c] + sum;
    }
}
}
#包括
整数和(整数s[3][4])
int main(int argc,char*argv[])
{
int s[3][4],c,r,和=0;

对于(r=0;r您在此处缺少一个尾随

int sum(int s[3][4])

首先,您不能将
sum
用作函数名,因为它是一个预定义的函数。您的代码有一些小的语法错误。下面是一些固定的代码

#include <stdio.h>

int sumx(int s[3][4]);

int main(void)
{
    int c, r, sum = 0;
    int s[3][4];  //declared inside the main
    for (r = 0; r <= 2; r++)
    {
        for (c = 0; c <= 3; c++)
        {
            printf("Enter value for s[%d][%d]: ", r, c);
            scanf("%d", &s[r][c]);
        }
    }
    printf("The sum is: %d\n", sumx(s));  //pass to the function because now it is not global;
    return 0;
}

int sumx(int s[3][4])
{
    int sum = 0;  //sum is initialized to zero otherwise it will take garbage value
    for (int r = 0; r <= 2; r++)
    {
        for (int c = 0; c <= 3; c++)
        {
            sum = s[r][c] + sum;
        }
    }
    return sum;
}
#包括
int sumx(int s[3][4]);
内部主(空)
{
int c,r,和=0;
int s[3][4];//在主

对于(r=0;r),函数声明和
main()的定义之间缺少分号
。您的编译器应该将您指向有问题的位置附近。仔细阅读邮件,然后检查代码。@JonathanLeffler还有很多错误,我给出了一个列出所有错误的答案。如果您可以重新打开,我可以发布。@JonathanLeffler是的,我面临的问题更多,只是缺少了一个分号,我似乎找不到完整的问题为什么程序不能运行的问题。@SagarV:你是对的,除了函数声明后和
int main(…)
之前缺少分号之外,还有许多其他问题。还有一些风格错误的编码选择(
for(r=0;r)不是有一个“像输入错误一样接近”的原因吗?我们真的需要另一个吗“缺少分号"问题?@Olaf:嘿,确实有!!我投票决定关闭它,但我留下这个答案,因为它实际上可能会有帮助。谢谢-1!问题是在某些情况下,这个问题不会有答案。手动删除投票是很少见的。在这里发表评论会更好。@Olaf:这有点有趣,我想我想99%的用户永远不会读到这个“Roomba”的东西。是的,一旦你有了某个代表,应该有一些介绍。哪个标准预定义了一个函数
sum()
?这不是C标准或POSIX,好吧。@jonathanLeffler代码中有很多问题,不仅仅是分号。@MohitYadav,你的答案没有涵盖所有问题。请提供一个标准的参考,其中指定了一个
求和
函数。我们不是“给我一个正确的代码”服务。处理语法错误和其他编译器诊断等是学习如何编程的一部分。你没有帮助OP只向他提供代码。顺便说一句:你在代码中定义
sum
你自己,而不是你的初始语句!