C语言:一维数组—一个萝卜一个坑问题

一维数组逻辑挑战—一个萝卜一个坑问题

从键盘输入0-9的五个数,然后输出0-9中那些没有出现过的数

一维数组初始化的两种方式:

1:

for (i = 0; i < 10; i++)

{

a[i] = 0;//初始化每一个小房间为0

}

2:

int a[10]={0};

顺序:

#include<stdio.h>
int main()
{
    int a[10], i,t;
    for (i = 0; i < 10; i++)
    {
        a[i] = 0;//初始化每一个小房间为0
    }
    for (i = 1; i <= 5; i++)
    {
        scanf("%d", &t);//依次读入五个0-9的数
        a[t] = 1;//把对应的小房间改为1
    }
    for (i = 0; i < 10; i++)
    {
        if (a[i] == 0)
        {
            printf("%d ", i);//巧妙地将读入的数据从小到大排序输出
        }
    }
    return 0;
}

逆序:

#include<stdio.h>
int main()
{
    int a[10], i,t;
    for (i = 0; i <=9; i++)
    {
        a[i] = 0;//初始化每一个小房间为0
    }
    for (i = 1; i <= 5; i++)
    {
        scanf("%d", &t);//依次读入五个0-9的数
        a[t] = 1;//把对应的小房间改为1
    }
    for (i = 9; i>=0; i--)
    {
        if (a[i] == 0)
        {
            printf("%d ", i);//巧妙地将读入的数据从大到小排序输出
        }
    }
    return 0;
}

从键盘输入0-9的五个数,然后从小到大输出读入的数

#include<stdio.h>
int main()
{
    int a[10], i,j, t;
    for (i = 0; i <= 10; i++)
    {
        a[i] = 0;//初始化每一个小房间为0
    }
    for (i = 1; i <= 5; i++)
    {
        scanf("%d", &t);//依次读入五个0-9的数
        a[t] = 1;//把对应的小房间改为1
    }
    for (i =0; i<10; i++)
    {
        for (j = 1; j <= a[i]; j++)
        {
            printf("%d ", i);//从小到大输出读入的五个数
        }
    }
    return 0;
}