题解 | #明明的随机数#
明明的随机数
https://www.nowcoder.com/practice/3245215fffb84b7b81285493eae92ff0
#include <stdio.h> int main() { int N = 0; scanf("%d", &N); if (N < 1 || N > 1000) { return 0; } int a1[1000] = {0}, a2[1000] = {0}, i = 0; //输入N个 while (i < N) { scanf("%d", a1 + i); if ( *(a1 + i) > 500 || *(a1 + i) < 1 ) { return 0; } i++; } int flag = 0, m = 0, temp = 0;//flag = 1代表有相同的元素,flag == 0代表没有相同的元素 //去重 for (int j = 0; j < N; j++)//s { flag = 0; for (int k = 0; k < N; k++)//将数组1中元素和遍历数组二中的元素进行对比 { if (a1[j] == a2[k])//只要有相同的就去检查数组1的下一个元素 { flag = 1;//有相同的 break; }//如果一个相同的都没有,再赋值给数组2 } if (flag == 0)//没有相同元素就赋值 { a2[m++] = a1[j]; } } //排序 for (int j = 0; j < m - 1; j++) { for (int k = 0; k < m - j - 1; k++) { if (a2[k] > a2[k + 1]) { temp = a2[k]; a2[k] = a2[k + 1]; a2[k + 1] = temp; } } } //输出 for (int j = 0; j < m; j++) { printf("%d\n", a2[j]); } return 0; }