//请编写函数fun,该函数的功能是:删去一维数组中所有相同的数,使之只剩下一个。函数返回删除后数组中元

//请编写函数fun,该函数的功能是:删去一维数组中所有相同的数,使之只剩下一个。函数返回删除后数组中元素的个数。

int fun(int a[], int n)
{
int i, j,k;
for(i=0; i<n; i++){//对每个元素
for(j=i+1; j<n; j++){//找它后面的元素
if(a[i]==a[j]){//找到相同的就把后面的数据向前挪,元素个数减少1
--n;
for(k=j; k<n; k++)
a[k] = a[k+1];
}
}
}
return n;//返回剩下的元素个数
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-27
#include "stdio.h"
void fun(int a[],int n)
{
int i,j;
int count = 0;
for(i = 0;i < n - 1;i ++)
{
for(j = i + 1;j < n;j ++)
{
if(a[i] == a[j])
{
count ++;
for(;j < n - 1;j ++)//如果仅需要返回结束后剩余的个数此循环可以不要
{
a[j] = a[j + 1];
}
}

}
}

printf("%d\n",n - count);
}
int main()
{
int a[10] = {1,2,3,3,5,6,3,8,1,1};
fun(a,10);
}
第2个回答  2010-12-27
int fun(int a[], int n)
{
int i, j,k;
for(i=0; i<n-1; i++)
for(j=i+1; j<n; j++)
if(a[i]==a[j])
{
n--;
for(k=j; k<n; k++)
a[k] = a[k+1];
}
return n;
}

相关了解……

你可能感兴趣的内容

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