用c语言输入一个数组,将数组的重复项删除并输出新数组
时间: 2024-06-11 13:07:11 浏览: 15
这里提供一种简单的方法:
```
#include <stdio.h>
int main() {
int arr[100], n, i, j, k;
printf("请输入数组长度:");
scanf("%d", &n);
printf("请输入数组元素:");
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
for (i = 0; i < n; i++) {
for (j = i + 1; j < n; ) {
if (arr[j] == arr[i]) {
for (k = j; k < n; k++) {
arr[k] = arr[k + 1];
}
n--;
} else {
j++;
}
}
}
printf("新数组为:");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
首先输入数组长度和元素,然后通过两重循环,依次比较数组中的元素,如果有重复的,则将后面的元素向前移动一位,然后将数组长度减一。最后输出新数组即可。
相关问题
用C语言输入一个数组进行随机输出
以下是一个简单的C语言程序,能够实现输入一个数组并随机输出:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int arr[10], i, j, temp;
srand(time(0)); // 初始化随机数种子
printf("请输入数组元素:\n");
for (i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
// 打乱数组顺序
for (i = 0; i < 10; i++) {
j = rand() % 10;
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
printf("随机输出的数组元素为:\n");
for (i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
这个程序的基本思路是:
1. 通过 `scanf` 函数输入数组元素;
2. 使用 `srand` 函数初始化随机数种子,确保每次运行程序时,生成的随机数序列是不同的;
3. 使用 `rand` 函数生成随机数,交换数组中的元素,从而打乱数组的顺序;
4. 使用 `printf` 函数输出打乱后的数组元素。
希望这个程序能够帮到您。
用c语言输入一个数组各元素的值,并将数组逆序存放。
好的,让我来解答你的问题。你可以使用以下代码来输入一个数组各元素的值,并将数组逆序存放:
```c
#include <stdio.h>
int main() {
int n, i, temp;
printf("Enter the length of array: ");
scanf("%d", &n);
int arr[n];
printf("Enter the elements of array: ");
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// Reverse the array
for (i = 0; i < n / 2; i++) {
temp = arr[i];
arr[i] = arr[n - i - 1];
arr[n - i - 1] = temp;
}
// Print the reversed array
printf("Reversed array: ");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
这段代码首先通过 `scanf()` 函数获取数组长度 `n`,然后定义一个大小为 `n` 的数组 `arr`。接下来,使用循环结构输入数组的各个元素。在输入完毕后,我们需要将数组进行逆序,通过另外一个循环来完成这个任务。最后再使用循环结构输出逆序后的数组。