ChambinLee 2017-04-20 08:55 采纳率: 100%
浏览 3492
已采纳

关于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条回答 默认 最新

  • 内核之道 PostgreSQL领域优质创作者 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;
       }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码