c语言怎么删除数组中的重复元素
答:i,j,k,n=N; while(1)//循环检查,直到没有相同数值元素 { find=0; for(i=0;i<n;i++) { for(j=i+1;j<n;j++) { if(a[i]==a[j])//找到两个相同的,删除后一个a[j]
答:输入的数组会有个长度n,去掉之后不能动态改变定长数组的长度,只能把保留下来的非重复n1位数前移,输出这n1个数;不妨设二维数组a[100],b[100],不知道你要存多少,第一个数组用来保存数组中不同种类数的具体值,第二个数组下标对应保存a数组中数的下标,在弄个计算器记录统计过的数的种类,作为a...
答:include<stdio.h> int del(int *a,int n){//采用插入法删除数组中相同的元素,效率更高 //只需对数组进行一次扫描 //该方法可避免大量元素前移 int count=1; //count为删除相同元素后数组中元素的个数 int i,j;for(i=1;i<n;i++) //对a中每个元素 { for( j=0;j<count;j++...
答:int remove(int *arr, int sz){int i = 0;int index = 0;for (i = 1; i < sz; i++) {if (arr[index] != arr[i]) {//依次向后比较,若不相等,则用arr[i]覆盖arr[index+1],否则(遇到的是重复元素),i往后移arr[++index] = arr[i];//当index与i之间没有其他元素,...
答:include<stdio.h>#define length 10int main(){ int a[length]={1,2,6,9,13,24,38,52}; int n,i; scanf("%d",&n); for(i=0;i<length;i++) { if(n==a[i]) { a[i]=0; } } for(i=0;i<length;i++) { ...
答:int main(){ int n,i,j,x,a[500];scanf("%d",&n);srand(time(0));for(i=0; i<n; i++){ a[i]=rand()%20;printf("%4d",a[i]);} printf("\nx=");scanf("%d",&x);for(i=j=0; i<n; i++)if(a[i]-x)a[j++]=a[i];printf("删除%d后的数组:\n",x);for...
答:新建一个空的数组 遍历老的数组里面的元素,和新的数组里面的比较,新的数组里面没有该元素,则放置在新的数组里面,老的话就不管。一直遍历到老的末尾就行了。
答:include <stdio.h>#include <stdlib.h>#include int main(int argc, char *argv[]) {srand((unsigned)time(0));int s[30]={0};int i,j;for(i=0;i<30;i++){s[i]=rand()%10;}printf("\n源数组:");for(i=0;i<30;i++){printf("%d ",s[i]);}j=0;while(j<30){if...
答:include<stdio.h> include<string.h> defineSIZE81 voiddelete_repeat(char*str);voidbubble_sort(char*str);intmain(){ charstr[SIZE];gets(str);delete_repeat(str);bubble_sort(str);puts(str);return0;} //删除重复字符 voiddelete_repeat(char*str){ /**判断数组内第i个字符是否与前i-...
答:{ int cout=0,i,j=0;char a[6]={'x','2','x','3','x','x'};for(i=0;i<6;i++){ if(a[i]=='x'){ cout++;if(cout<2){ a[j]=a[i];j++;} } else { a[j]=a[i];j++;} } printf("最后有X的个数为:%d\n",cout);for(i=0;i<j;i++)printf("%c "...
网友评论:
史伦17716742568:
C语言删除一个整型数组里面重复的元素 -
30181顾阅
: 利用双重循环,将每个值依次与其后面的值相比较,如果有相同的则删除该元素即可. 删除时,可以使用将后面元素依次向前移动一位,同时总长度减一的方式. 参考代码如下: int remove_repeat(int *a, int l) {int i, j, k; for(i = 0; i < l; i ++){for...
史伦17716742568:
c语言 去掉数组中重复的元素····求帮助 -
30181顾阅
: 说的不是很清楚,数组定义的时候就删除?看来你对数组的操作还不是很清楚,应该是在数据写入数组的时候将其删除吧.你可以这样,如果数组不大,在写入数据的时候先遍历一遍数组看看数组中是否有该数据,如果有那么就不把数据写入数组,如果没有就接着最后一个元素写入数组就可以了.
史伦17716742568:
C语言数组去除重复内容 -
30181顾阅
: 用两个游标控制,可以方便的实现,参考代码如下: #include<stdio.h> #define SIZE 12 int a[SIZE]={0,0,0,1,2,2,3,4,4,5,5,44}; int main() {int i=1,j=0;while(i<SIZE)if(a[j]!=a[i]){++j;a[j]=a[i];++i;} else ++i;for(i=0;i<=j;++i){printf("%d",a[i]);if(i<j)printf(",");}return 0; }
史伦17716742568:
C语言删除一个整型数组里面重复的元素
30181顾阅
: for(int i=0; i<length;i++){ for(int j=0; j<i;j++){ if(arr[j]=arr[i]){ for(int k=i+1;k<length;k++){ arr[k-1]=arr[k]; } length--; break; } } }
史伦17716742568:
c语言问题数组去重 -
30181顾阅
: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26#include <stdio.h> intmain() {intm, n, i, cur, pre;scanf("%d", &m); while(m--){scanf("%d", &n);scanf("%d", &cur);pre = cur;printf("%d ", cur);for(i = 1; i < n; i++...
史伦17716742568:
C语言数组内任意几个连续相同的元素怎么删? -
30181顾阅
: //#include "stdafx.h"//vc++6.0加上百这度一专行属.#include "stdio.h" void main(void){ int i,j,k,a[]={4,78,3,2,19,0,56,56,8,7,3,1,90,86,437,918,0,1},ln; for(ln=sizeof(a)/sizeof(int),k=i=1;i<ln;i++){ for(j=0;j<k;j++) if(a[j]==a[i]) break; if(j>=k) a[k++]=a[i]; } for(i=0;i<k;printf("%d ",a[i++]));//Look at... printf("\n"); }
史伦17716742568:
c语言,想删除数组重复的元素...只保留第一个重复的元素..就是删除X后面重复的X.. -
30181顾阅
: #includevoid main() { int cout=0,i,j=0; char a[6]={'x','2','x','3','x','x'}; for(i=0;i<6;i++) { if(a[i]=='x') { cout++; if(cout<2) { a[j]=a[i]; j++; } } else { a[j]=a[i]; j++; } } printf("最后有X的个数为:%d\n",cout); for(i=0;i printf("%c ",a[i]); }
史伦17716742568:
C语言中怎么删除数组中相同的数字 -
30181顾阅
: #include #include int simplification(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]) { for(k = j; k < n - 1; ++k) a[k] = a[k + 1]; --j; --n; } } } return n;} int main() { int a[30],i,n = 30; printf("原数组:\n"); srand((unsigned)...
史伦17716742568:
c语言删除数据中重复的值 -
30181顾阅
: int temp=0; int same=0; for(int i=0;i<num;i++) {for(int j=0;j<=temp;j++){if(strTemp[i].compare(strReturn[j])){same=1;}}if(same==1){same=0;strReturn[++temp]=strTemp[i];} } 最后的strReturn 保存的就是你要的东西,简单写了一下 有些细节 你自己琢磨一下吧
史伦17716742568:
c语言中如何去除一组数组中相同的数字……只保留一个然后输出新数组 -
30181顾阅
: ①,使用set. ②,用Begin=0,end=ArraySize-1, 每次遍历begin到end之间的元素, 如果有重复的,则将重复元素与end元素交换,--end, 遍历完毕之后++begin,当begin达到end的时候停止.