关于c语言数组,控制输入规定数量的数字

  1. 题目:请编写一个程序,使其可以实现:输入n(0-n≤10)个整数,删除其中的负数。例如, 输人1.-23,4.5,-6.7,输出结果为13 5 7. 。

以下是我编写的代码:

 #include <stdio.h>
void main()
{
    int i=0, j=0;
    int a[10];
    printf("请输入十个以内整数:");
    while(i<10)
    {
        scanf("%d",&a[i]) ;
        i++;
    }
    i=0;
    while(i<10)
    {
        if(a[i]>0)
        {
            printf("%d  ",a[i]);
        }
        i++;
    }
}

不知道如何控制输入五到十个,该怎么控制呢?


在各路大神的帮助下成功的解决了此问题,代码如下:

#include <stdio.h>
#include <malloc.h>
void main()
{
    int i=0, j=0,num;
    int *array;
    printf("你要输入几个数字:");
    scanf("%d",&num);
    array=(int*)malloc(num*sizeof(int));
    printf("请输入%d整数:",num);
    while(i<num)
    {
        scanf("%d",&array[i]) ;
        i++;
    }
    i=0;
    while(i<num)
    {
        if(array[i]>0)
        {
            printf("%d  ",array[i]);
        }
        i++;
    }
    free(array);
}

图片说明

不好意思楼主,刚才上面那个代码不完美,重新给你写了一个;可以完好运行。

 #include<stdio.h>
#include<stdlib.h>
int main(void)
   {
    int Array[10]={0};
    int i=0,j;
    for (i=0;i<10;i++)
    {
      scanf ("%d",&Array[i]);
    }

    i=0;
    j=0;
    while (j<10)
        {
          if (Array[i] < 0)
              {
                ++j;
                ++i;
              }

          else
              {
              printf ("%-4d",Array[i]);
               ++i;
               ++j;
              } 
        }

    system("pause");
    return 0;
   }

具体一点,什么叫输入5到10个

是说怎么控制输入数字的个数是嘛

手机贴代码,本来有缩进的,贴上去了就没有缩进了。影响大家阅读了,图片说明

 #include<stdio.h>
#include<stdlib.h>
int main(void)
   {
    int Array[10]={0};
    char Buf[10]={0};
    int i=0,j=0;
    for (i=0;i<10;i++)
    {
      scanf ("%d",&Array[i]);
    }


    for (i=0;i<10;i++)
    {
    if (Array[i]<0)
        {
          i++;
        }
    else
        {
         Buf[j]=Array[i];
         i++;
         j++;
        }

    }
    for(i=0;i<10;i++)
        {
        printf ("%d\n",Buf[i]);
        }

    system("pause");
    return 0;
   }