【发布时间】:2019-10-15 10:07:27
【问题描述】:
给定一个大小为 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;
}
我期望以下输入和输出:
Input:
2
5
1 2 3 5
10
1 2 3 4 5 6 7 8 10
Output:
4
9
但实际输出是
1 -8719623343620674816
【问题讨论】:
标签: c arrays missing-data