输入一组数,输出该组数。将其中重复的数从数组剔除后,再输出--急中

来源:百度知道 编辑:UC知道 时间:2024/05/18 00:06:49
输入一组数,输出该组数。将其中重复的数从数组剔除后,再输出
我写的代码
main()
{ int i,j,js=0,jw,a[5],b[5];
for(i=0;i<5;i++)
scanf("%d",&a[i]);
for(i=0;i<5;i++)
printf("%d\t",a[i]);
for(i=0;i<5;i++) {
for(j=0;j<5;j++)
{
if(a[i]!=a[j]) b[i]=a[i];
if(a[i]==a[j])
js++;
}
if(js>2) b[i]=a[i+1]; }
printf("\n");
for(i=0;i<5;i++)
printf("%d\t",b[i]);
getch();
}
可惜是错的,我也不知道错哪里了,大家帮帮忙。先谢下了了

还有一题:设计一递归函数convert,实现十进制到二进制的转换输出?
这题的代码实在不好意思拿出来了。大家帮帮忙吧。我十分着急

我在你基础上改一点:

main()
{
int i,j,a[5],b[5];
for(i=0;i<5;i++)
scanf("%d",&a[i]);

for(i=0;i<5;i++)
printf("%d\t",a[i]);

for(i=0;i<5;i++)
b[i]=a[i];/*先把a数组复制到b数组*/

for(i=0;i<5;i++)
for(j=i;j<5&&j!=i;j++)
{
if(a[i]==b[j]) /*这里把重复的数设为-1,做为标记,要选个在数组中不可能出现的数*/
b[j]=-1;
}
for(i=0;i<5;i++)
if(b[i]!=-1)/*如果标记为-1,就不打出来*/
printf("%d\t",b[i]);

}

#include <stdio.h>

int main()
{
int i, j, a[5];
for(i=0;i<5;i++)
scanf("%d",&a[i]);

for(i=0;i<5;i++)
{
for(j=i + 1;j<5;j++)
if ( a[i] == a[j] )
{
a[j] = -1;
continue;
}

if ( a[i] >= 0 )
printf ("%d ", a[i]);
}