Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.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_Arrays_Missing Data - Fatal编程技术网

C编程中数组中缺少数字

C编程中数组中缺少数字,c,arrays,missing-data,C,Arrays,Missing Data,给定一个大小为N-1的数组C,并给定从1到N的数字中缺少一个元素,则将找到缺少的数字 输入: 输入的第一行包含一个整数T,表示测试用例的数量。对于每个测试用例,第一行包含N(数组大小)。下一行包含N-1个数组元素 输出: 打印数组中缺少的数字 这个问题是在一系列n个整数中查找缺失的数字。但是,在使用下面的代码时,我无法获得预期的输出 #include <stdio.h> int main() { //code int T,run,i; scanf("%d"

给定一个大小为N-1的数组C,并给定从1到N的数字中缺少一个元素,则将找到缺少的数字

输入: 输入的第一行包含一个整数T,表示测试用例的数量。对于每个测试用例,第一行包含N(数组大小)。下一行包含N-1个数组元素

输出: 打印数组中缺少的数字

这个问题是在一系列n个整数中查找缺失的数字。但是,在使用下面的代码时,我无法获得预期的输出

#include <stdio.h>

int main() 
{
    //code
    int T,run,i;
    scanf("%d", &T);
    long N,res,C,en;
    long arra[1];
    for (run = 0;run <T; run++ )
    { 
        long arra[T];
        scanf("%ld", &N);
        res =0;
        for (i = 0; i <N-1; i++)
        {
            scanf("%ld",&C);
            res = res + C;
        }
        en = ((N*(N+1))/2)- res; // subtracting the overall sum of array elements from N integers 
        arra[run]=en; //saving it to array
    }
    for(run = 0; run < T; run++)
    {
        printf("%ld ",arra[run]);
    }
    return 0;
}
但实际产出是有限的

1 -8719623343620674816

您在
for
循环中重新声明了变量
arra
。因此,当您分配给
arra[run]
时,您分配给的是内部数组,而不是
main()
函数中的数组。因此,当您试图在最后打印数组的内容时,会收到垃圾

您还声明了只有一个元素的第一个数组,而不是
T
元素

去掉第二个声明,并将第一个声明从

long arra[1];


您在
for
循环中重新声明了变量
arra
。因此,当您分配给
arra[run]
时,您分配给的是内部数组,而不是
main()
函数中的数组。因此,当您试图在最后打印数组的内容时,会收到垃圾

您还声明了只有一个元素的第一个数组,而不是
T
元素

去掉第二个声明,并将第一个声明从

long arra[1];

正确代码 在for循环之前声明arra,否则对于每次迭代,将重新声明arra,并删除其中以前的值

#include <stdio.h>

int main() 
{
    //code
    int T,run,i;
    scanf("%d", &T);
    long N,res,C,en;
    long arra[T];
    for (run = 0;run <T; run++ )
    { 
        scanf("%ld", &N);
        res =0;
        for (i = 0; i <N-1; i++)
        {
            scanf("%ld",&C);
            res = res + C;
        }
        en = ((N*(N+1))/2)- res; // subtracting the overall sum of array elements from N integers 
        arra[run]=en; //saving it to array
    }
    for(run = 0; run < T; run++)
    {
        printf("%ld ",arra[run]);
    }
    return 0;
}
#包括
int main()
{
//代码
int T,run,i;
scanf(“%d”、&T);
长N,res,C,en;
龙阿拉[T];
对于(运行=0;运行正确的代码
在for循环之前声明arra,否则对于每次迭代,将重新声明arra,并删除其中以前的值

#include <stdio.h>

int main() 
{
    //code
    int T,run,i;
    scanf("%d", &T);
    long N,res,C,en;
    long arra[T];
    for (run = 0;run <T; run++ )
    { 
        scanf("%ld", &N);
        res =0;
        for (i = 0; i <N-1; i++)
        {
            scanf("%ld",&C);
            res = res + C;
        }
        en = ((N*(N+1))/2)- res; // subtracting the overall sum of array elements from N integers 
        arra[run]=en; //saving it to array
    }
    for(run = 0; run < T; run++)
    {
        printf("%ld ",arra[run]);
    }
    return 0;
}
#包括
int main()
{
//代码
int T,run,i;
scanf(“%d”、&T);
长N,res,C,en;
龙阿拉[T];
for(run=0;run