请高手用C语言编写一个数组中去掉重复数字后按顺序输出的程序,最简单的,最好把个数也统计输出

如题所述

#include<stdio.h>
void main()
{
int a[10],b[10];
int i,j,k,n,m = 0,flag;
printf("please input 10 nuber\n");
for(i = 0; i < 10; i++)
scanf("%d",&a[i]);
for(i = 0; i < 10; i++)
{
flag = 1;
for(j = 1; j <= m; j++)
if(a[i] == b[j])
{
flag = 0;
break;
}
if(flag)
{
b[j] = a[i];
m++;
}
}
for(i = 1; i < m; i++)
for(j = i+1; j <= m; j++)
if(b[i]>b[j])
{
int temp = b[i];
b[i] = b[j];
b[j] = temp;
}
for(i = 1; i <= m; i++)
printf("%-3d",b[i]);
}
运行结果
please input 10 nuber
1 2 5 3 54 2 3 1 3 1
1 2 3 5 54 Press any key to continue
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-07-19
.
第2个回答  2012-07-19
#include <stdio.h>
#include <stdlib.h>
main( ){
int x[]={1,2,3,4,8,7,1,3,2,1,2,1,4};
int i,j,k,n;
n = sizeof(x) / sizeof(int);
// 你也可以改写成输入数据个数n, 并输入数据,然后用下面的运算。
for (j=n-1;j>=1;j--){
for (i=0;i<j;i++) if (x[i]==x[j]) {
for (k=j+1;k<n-1;k++) x[k-1]=x[k];
n=n-1;break;
}
}
// 按大小排队
for (i=0;i<n-1;i++)
for (j=i+1;j<n;j++)
if (x[i]>x[j]){k=x[i];x[i]=x[j];x[j]=k;}
printf("total diff number of data is %d\n",n);
for (i=0;i<n;i++) printf("%d ",x[i]);
return 0;
}

相关了解……

你可能感兴趣的内容

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