如何在此程序中合并输入数组

时间:2016-07-05 00:19:14

标签: c arrays

这是一个代码,必须从用户获取输入数组并在删除重复项后输入相同的内容。但是,我不确定如何在其中合并输入数组,现在它具有硬编码的元素。这是我编程的第一周,所以如果这是一个愚蠢的问题我会道歉。这是代码:

#include <stdio.h>
#include <stdbool.h>

#define nelems 8
int main()
{
    int l[nelems] = {1,2,3,1,4,4,5,6};    

    for(int m=0;m<nelems;m++)
    {
        bool wase = 0;
        for(int n=0;n<nelems && m>n;n++)          
        {
            if (l[m] == l[n] && m != n)
                wase = 1;
        }
        if (wase == 0){
            printf("%d\n", l[m]);
        }
    }

    return 0;
}

3 个答案:

答案 0 :(得分:1)

尝试使用for循环和scanf。

int i;
for(i=0;i<nelems;i++){
    scanf("%d",&l[i]);
}

答案 1 :(得分:0)

如果你喜欢int-type数组,你可以声明另一个:

int input[nelems];

并按照user968000建议,记住当您在控制台中键入序列时,必须在每个数字之间放置一个空格。 为了避免这种情况,我宁愿使用char-type数组,声明如下:

char l[nelems] = {'1', '2', '3' /*etc.*/};
char input[nelems];

然后你按照用户968000的建议做了一个 for 循环:

int i;
for(i=0;i<nelems;i++)
  scanf("%c", &input[i]);

在这种情况下,您不需要数字之间的空白区域。请注意&#39;&amp;&#39; scanf函数中的字符:就像我展示的那样,你肯定会在下一课中了解它是什么。

所以你有一个输入数组,你可以随意处理它。

答案 2 :(得分:0)

这就是你需要的。

#include <stdio.h>
#include <stdbool.h>

#define nelems 8
int main()
{
    int i;
    int l[nelems] ;
    for(i=0;i<nelems;i++)
    {
       printf("enter %d number :",i);
       scanf("%d",&l[i]);
    }

    for(int m=0;m<nelems;m++)
    {
        bool wase = 0;
        for(int n=0;n<nelems && m>n;n++)          
        {
            if (l[m] == l[n] && m != n)
                wase = 1;
        }
        if (wase == 0){
            printf("%d\n", l[m]);
        }
    }

    return 0;
}