Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.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 如何打印部分填充的整数数组?我们可以';t使用'\0';如果是整数_C - Fatal编程技术网

C 如何打印部分填充的整数数组?我们可以';t使用'\0';如果是整数

C 如何打印部分填充的整数数组?我们可以';t使用'\0';如果是整数,c,C,因此,我给一个用户定义的数组作为输入,然后在该数组中选择唯一的数字并将它们存储到另一个数组中,但问题是无法知道新数组的大小。如果数组被部分填充,它将打印一些垃圾值 我尝试过使用“\0”,但后来发现它只能用于“字符数组”的情况。 接下来我尝试使用“sizeof”,但仍然没有结果。“sizeof”存储阵列的最大大小 #include<stdio.h> int main() { int n; printf("Enter The Size Of Array:

因此,我给一个用户定义的数组作为输入,然后在该数组中选择唯一的数字并将它们存储到另一个数组中,但问题是无法知道新数组的大小。如果数组被部分填充,它将打印一些垃圾值

我尝试过使用“\0”,但后来发现它只能用于“字符数组”的情况。 接下来我尝试使用“sizeof”,但仍然没有结果。“sizeof”存储阵列的最大大小

#include<stdio.h>
int main()
{
        int n;
        printf("Enter The Size Of Array: ");
        scanf("%d",&n);
        int a[n],b[n];
        int i;
        printf("Enter The Elements Of The Array:\n");
        for(i=0;i<n;i++)
        {
                scanf("%d",&a[i]);
        }
        for(i=0;i<n;i++)
        {
                int j;
                for(j=0;j<i;j++)
                {
                        if(a[i]==a[j])
                        {
                                break;
                        }
                }
                if(j==i)
                {
                        b[j]=a[i];
                }
        }
        printf("\nUnique Numbers Are:  ");
        for(i=0;i<n;i++)
        {
                printf("%d  ",b[i]);
        }
        printf("\n");
        return 0;
}
预期结果:-

Enter The Size Of Array: 10
Enter The Elements Of The Array: 5 4 3 1 2 3 5 3 2 4
Unique Numbers Are:  5  4  3  1  2

很简单。使用计数器:

int main()
{
        int n;
        printf("Enter The Size Of Array: ");
        scanf("%d",&n);
        int a[n],b[n];
        int i;
        int noDups=0; // Init counter                                                                              
        printf("Enter The Elements Of The Array:\n");
        for(i=0;i<n;i++) {
                scanf("%d",&a[i]);
        }
        for(i=0;i<n;i++) {
                int j;
                for(j=0;j<i;j++) {
                        if(a[i]==a[j])
                                break;
                }
                if(j==i) {
                        b[j]=a[i];
                        noDups++; // Increment counter                                                             
                }
        }
        printf("\nUnique Numbers Are:  ");
        for(i=0; i<noDups ;i++) { // Loop noDups number of times                                                   
                printf("%d  ",b[i]);
        }
        printf("\n");
        return 0;
}

好的,我在代码中又发现了一个错误:-

 #include<stdio.h>
 int main()
 {
         int n;
         printf("Enter The Size Of Array: ");
         scanf("%d",&n);
         int a[n],b[n];
         int i;
         int p=0;
         printf("Enter The Elements Of The Array:\n");
         for(i=0;i<n;i++)
         {
                 scanf("%d",&a[i]);
         }
         for(i=0;i<n;i++)
         {
                 int j;
                 for(j=0;j<i;j++)
                 {
                         if(a[i]==a[j])
                         {
                                 break;
                         }
                  }
                 if(j==i)
                 {
                         b[p]=a[i];
                         p++;
                 }
         }
         printf("\nUnique Numbers Are:  ");
         for(i=0;i<p;i++)
         {
                 printf("%d  ",b[i]);
         }
         printf("\n");
         return 0;
 }
#包括
int main()
{
int n;
printf(“输入数组的大小:”);
scanf(“%d”和“&n”);
int a[n],b[n];
int i;
int p=0;
printf(“输入数组的元素:\n”);

对于(i=0;这是C代码?我想你应该标记C而不是C。太好了!谢谢你的帮助
if(scanf("%d",&a[i]) != 1) {
    fprintf(stderr, "Error reading integer\n");
    exit(1);
}
 #include<stdio.h>
 int main()
 {
         int n;
         printf("Enter The Size Of Array: ");
         scanf("%d",&n);
         int a[n],b[n];
         int i;
         int p=0;
         printf("Enter The Elements Of The Array:\n");
         for(i=0;i<n;i++)
         {
                 scanf("%d",&a[i]);
         }
         for(i=0;i<n;i++)
         {
                 int j;
                 for(j=0;j<i;j++)
                 {
                         if(a[i]==a[j])
                         {
                                 break;
                         }
                  }
                 if(j==i)
                 {
                         b[p]=a[i];
                         p++;
                 }
         }
         printf("\nUnique Numbers Are:  ");
         for(i=0;i<p;i++)
         {
                 printf("%d  ",b[i]);
         }
         printf("\n");
         return 0;
 }