🎉欢迎关注🔎点赞👍收藏⭐️留言📝
🎉推荐up主专题文章 C语言100道经典编程题【详细分析版】
📌QQ:3052645092 不明白或有问题可以一起讨论哦
🍭作者水平很有限,如果发现错误,请及时告知作者哦!感谢感谢!
超级推荐的刷题网站牛客网
//给数组删除重复的元素
#include<stdio.h>
#define N 12
int main(){
	int a[N] = { 1, 1, 2, 3, 3, 4, 6, 4, 8, 6,9,8};
	int i = 0, j = 0, n = N;
	//n个数比较n-1次
	printf("==========去重之前=========\n");
	for (i = 0; i < n; i++){
		printf("%d ", a[i]);
	}
	for (i = 0; i < n - 1; i++){

		for (j = i + 1; j < n; j++){
			if (a[i] == a[j]){
				//i位置上的数和后面的比较要是相同,依次向前挪
				for (int k = j; k < n - 1; k++){
					a[k] = a[k + 1];
				}
				--n;//把一个数字给干掉了所以n--;
				--j;//从j+1后面的位置一直依次向钱挪 j位置被换了新值,所以--j还要再次看
				//当前j位置的数与前面的重复嘛
			}
			
		}
	}
	printf("\n==========去重之后=========\n");
	for (i = 0; i < n; i++){
		printf("%d ", a[i]);
	}
	return 0;
}

注意n--了之后,循环的访问范围就减少一个,所以被挪一个减少一个访问范围

更多推荐

C语言删除数组中的重复元素(详细分析版)