鱼C论坛

 找回密码
 立即注册
查看: 647|回复: 10

[已解决]整数去重这道题怎么做

[复制链接]
发表于 2020-5-6 18:48:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 15533617457 于 2020-5-6 18:51 编辑

输出这个数组里的数据如果有相同的值则输出第一次出现的
【输入样例】
10 12 93 12 75
【输出样例】
10 12 93 75
最佳答案
2020-5-6 20:08:28

  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int array[]={1,22,1,44,5,6,5,44};
  5.         int length = sizeof(array)/sizeof(int);
  6.         for (int k = 0 ; k < length-1; k++)
  7.             {   
  8.                     for(int i=k+1; i<length ; i++)
  9.                     {
  10.                     if (*(array+k) == *(array+i))
  11.                     {
  12.                             for (int j = i+1; j< length ; j++)
  13.                             {
  14.                                     *(array+j-1)= *(array+j);
  15.                                             }
  16.                         length--;
  17.                     }
  18.                     }
  19.             }
  20.         for (int i=0; i<length; i++)
  21.         {
  22.                 printf("%d ",array[i] );
  23.         }
  24.         return 0;
  25. }
复制代码


结果; 1 22 44 5 6 [Finished in 0.0s]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-6 18:57:42 | 显示全部楼层
  1. nums = input("请输入一些整数:").split(" ")
  2. for i in range(len(nums)):
  3.     nums[i] = int(nums[i])

  4. nums = list(set(nums))

  5. for i in range(len(nums)):
  6.     print(nums[i], end = " ")
  7. print()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-6 19:03:05 | 显示全部楼层

你这是 Python……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-6 19:12:24 | 显示全部楼层
  1. temp = [parse(Int64, each) for each in split(readline())]
  2. res = Int64[]
  3. for each in temp
  4.     if !(each in res)
  5.         push!(res, each)
  6.     end
  7. end
  8. println(res)
复制代码

Julia
C语言:
https://zhidao.baidu.com/question/694796476251817964.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-6 19:56:16 | 显示全部楼层
qiuyouzhi 发表于 2020-5-6 19:12
Julia
C语言:
https://zhidao.baidu.com/question/694796476251817964.html

只有有序的才能双指针,这个是无序的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-6 20:07:18 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-5-6 19:56
只有有序的才能双指针,这个是无序的

哦,好的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-6 20:07:43 | 显示全部楼层
qiuyouzhi 发表于 2020-5-6 19:12
Julia
C语言:
https://zhidao.baidu.com/question/694796476251817964.html

如果要先排序的话那输出的格式就会跟输入的格式不一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-6 20:08:28 | 显示全部楼层    本楼为最佳答案   

  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int array[]={1,22,1,44,5,6,5,44};
  5.         int length = sizeof(array)/sizeof(int);
  6.         for (int k = 0 ; k < length-1; k++)
  7.             {   
  8.                     for(int i=k+1; i<length ; i++)
  9.                     {
  10.                     if (*(array+k) == *(array+i))
  11.                     {
  12.                             for (int j = i+1; j< length ; j++)
  13.                             {
  14.                                     *(array+j-1)= *(array+j);
  15.                                             }
  16.                         length--;
  17.                     }
  18.                     }
  19.             }
  20.         for (int i=0; i<length; i++)
  21.         {
  22.                 printf("%d ",array[i] );
  23.         }
  24.         return 0;
  25. }
复制代码


结果; 1 22 44 5 6 [Finished in 0.0s]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-6 20:21:01 | 显示全部楼层
zltzlt 发表于 2020-5-6 19:03
你这是 Python……

额(⊙o⊙)…
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-7 09:05:02 | 显示全部楼层
THU_LSM 发表于 2020-5-6 20:08
结果; 1 22 44 5 6 [Finished in 0.0s]

能稍微帮我注释一下吗这个我看不太懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-7 11:45:46 | 显示全部楼层
15533617457 发表于 2020-5-7 09:05
能稍微帮我注释一下吗这个我看不太懂

和你说一下思路吧,就是两个for循环,外层循环k再1~length遍历,内层循环在k~length之间便利,每遇到重复的,就把后面的那一个给剔除掉。相当于两个游标嘛,如果两个游标的地方的元素值相等,就把后面的那个游标处的给删掉。
删除的思路是,比如要删除第i个元素,就把第i+1个元素的值赋给第i个,把第i+2个元素的值赋给第i+1个,把第i+3个元素的值赋给第i+2个。。。。。。一直到末尾。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 23:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表