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