bigpehi
2017-04-20 08:55
采纳率: 75%
浏览 3.1k

关于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);
}

图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • 君子黎 2017-04-20 09:45
    已采纳

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

     #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;
       }
    
    点赞 评论
  • qq_33417547 2017-04-20 08:59

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

    点赞 评论
  • 君子黎 2017-04-20 09:27
     #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;
       }
    
    点赞 评论
  • 卖太妃糖的古尔丹 2017-04-20 09:29

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

    点赞 评论
  • bigpehi 2017-04-20 13:25

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

    点赞 评论

相关推荐 更多相似问题