帮编一个C语言程序,要简单点的。

1、 数组int a[8],随即输入数据,可以重复值,然后对该数组操作,删去数组中重复的值,只保留一个。

比如int a[8]={13,24,3,13,3,3,2,5}
处理之后数组a 变为 {13,24,3,2,5,0,0,0}

#include <stdio.h>

void main()

{

    int a[8];

 int i,j,k,tmp;

 

 printf("输入8个整数(逗号隔开):");

 scanf("%d,%d,%d,%d,%d,%d,%d,%d",&a[0],&a[1],&a[2],&a[3],&a[4],&a[5],&a[6],&a[7]);

 

 for(i=0; a[i]!=0; i++)

 {

  tmp = a[i];

  for(j=i+1; a[j]!=0; j++)

   if(a[j]==tmp)

   {

    for(k=j; a[k]!=0&&k<8; k++)

     a[k]=a[k+1];

    a[k-1]=0;

    i--;

   }

 }

 

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

  printf("%d ",a[i]);

 printf("\n");

}

 

 

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-05
#include <stdio.h>
#define N 8
int main()
{
int a[N];
int i,j;
for(i=0;i<N;i++)
{ scanf("%d",&a[i]);
}
for(i=0;i<N;i++)
{
for(j=i+1;j<N;j++)
{
if(a[i] == a[j])
{
a[i] = 0;
break;
}
}
}
for(i=0;i<N;i++)
if(a[i] != 0)
printf(" %d ",a[i]);

return 0;
}
第2个回答  2013-01-05
这里有一个删除重复值,但是没有重新排序的程序:
#include <stdio.h>
int
main(void)
{
int a[8];
int i,j;
printf("please input your array:\n");
for ( i = 0; i < 8; i++){
scanf("%d",&a[i]);
}
for( i = 0; i < 7; i++)
for( j = i+1; j < 8; j++){
if(a[i] == a[j])a[j]=0;
}
for ( i = 0; i < 8; i++){
printf("%d",a[i]);
}
printf("\n");
return 0;
}
第3个回答  2013-01-05
#include<stdio.h>
int main()
{
int a[8];
int b;
int i=0,j=0,count=8;
while(count--)//读8次
{
bool flag=true;//用来记录前面有没有相同的
scanf("%d",&b);
for(j=0;j<i;j++)
if(a[j]==b)
flag=false;//如果有相同的就置为false
if(flag)
{
a[i]=b;
i++;
}
}
for(j=0;j<i;j++)
printf("%d ",a[j]);
}
//已经编译通过

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网