|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
【问题描述】
输入int a[10]的十个元素,删除其中所有重复的元素,输出删除后的结果。
说明:请只提供需要补全的代码部分,不需要提供完整程序。可根据需要定义其他变量。
【输入形式】
【输出形式】
【样例输入】
2 2 3 5 2 6 8 5 3 6
【样例输出】
2 3 5 6 8
#include <stdio.h>
int main()
{
int a[10];
int i, j ,n;
for(i = 0; i<n; i++)
printf("%d ", a[i]);
return 0;
}
求大神解决!!!!!
- #include <stdio.h>
- int main()
- {
- int a[10], result[10], count = 0;
- int i, j, n;
- for (i = 0; i < 10; i++) {
- scanf("%d", &a[i]);
- for (j = 0; j < i; j++) {
- if (a[j] == a[i]) {
- break;
- }
- }
- if (j == i) {
- result[count++] = a[i];
- }
- }
- for(i = 0; i < count; i++) {
- printf("%d ", result[i]);
- }
- return 0;
- }
复制代码
这是完整程序,实现的功能为输入10个数,输出去重后的结果。
代码思路:
1.首先定义存储原始数据和删除重复元素后的数组 a 和 result。因为题目输入的是固定为 10 个数,所以数组大小定为 10。
2.通过循环输入十个数,并从第一个数开始依次遍历数组 a 中已经输入的数,若存在相同元素,则跳出该层循环;如果全部遍历过后仍没有找到相同元素,则将该元素存入新数组 result 中,并将统计变量 count 加 1。
3.最后通过循环遍历 result 数组,输出统计变量值之前的数组元素即为结果。
ps: 此处只提供了完整程序,简要解释在代码中也有,请按需阅读。
有用请设置最佳答案
|
|