Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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_Data Structures - Fatal编程技术网

C 我的代码中的垃圾结果

C 我的代码中的垃圾结果,c,arrays,data-structures,C,Arrays,Data Structures,嘿,伙计们,我在写这段代码,找到相同的数字并显示它们,到目前为止,结果只是随机数字,我需要帮助 int main(void){ int arr[10] = {1, 2, 3, 4, 5, 4, 8 ,8, 9, 10}; int i; int j; int same[10]; int ctr = 0; for(i = 0; i < 10; i++){ for(j = 10; j > 0;j--){ if(arr[i] == arr[j]){

嘿,伙计们,我在写这段代码,找到相同的数字并显示它们,到目前为止,结果只是随机数字,我需要帮助

int main(void){
int arr[10] = {1, 2, 3, 4, 5, 4, 8 ,8, 9, 10};
int i;
int j;
int same[10];
int ctr = 0;

for(i = 0; i < 10; i++){
    for(j = 10; j > 0;j--){
        if(arr[i] == arr[j]){
            same[ctr++] = arr[i];//store the similar numbers
        }
    }
}

for(i = 0; i < 10; i++){
    printf("%d", same[i]);
}
getch();
return 0;}

从9开始第二个循环,即j循环,然后转到0。

你在自相矛盾。对于同一数组,您使用了两种不同的索引方案

在外部循环升序索引中,索引从0到9 在内部循环下位索引中,从1索引10。 内部循环索引是无效的,因此访问绑定外内存是无效的。这导致了

你必须做到这一点

for(j = 9; j >= 0;j--)
之后,您将尝试打印同一数组中所有元素的值,而实际上,所有或无元素值都可能没有赋值。未初始化自动变量,因此包含不确定的值。由于变量从未获取其地址,因此尝试使用该值将再次导致UB


也就是说,一旦找到匹配项,就可以使用continue跳转到外部循环。

我在codechef编译器上运行了您的代码,它给出了一个运行时错误。因为在ctr++步骤中,ctr的值超过了相同数组[]的大小

此外,在您的代码中,您将一个元素与其自身进行比较,因此每个数字都将打印在列表中,因为i==j可能是一种可能的情况

如果您包含条件i,则会更好=使用它或从i+1到9迭代j,以便不进行自比较。以下是循环中相同代码的工作片段:-

for(i = 0; i < 10; i++){
    for(j = 10; j > 0;j--){
        if(arr[i] == arr[j] && i!=j){
            same[ctr] = arr[i];//store the similar numbers
            ctr++;
            cout<<ctr<<" ";
        }
    }
} 

对于一个包含10个元素的数组,顶级索引是什么?循环中j的初始值是多少?对于i=0;i<10;i++{forj=10;j>0;j-{->fori=0;i<9;i++{forj=i+1;j<10;j++{or变更逻辑,fori=0;i<10;i++{->fori=0;i