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;
}
#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;
}
#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]);
}
//已经编译通过
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]);
}
//已经编译通过