鱼C论坛

 找回密码
 立即注册
查看: 2488|回复: 4

如何只输出一次相同的数字

[复制链接]
发表于 2021-11-3 13:18:04 From FishC Mobile | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 kkken 于 2021-11-3 13:58 编辑

如,arr[]={11,11,11}
输出:11
如arr[]={21,21,33,21}
输出:21,33
用C++
要按照大小输出,且相同的只能输出一次。
谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-11-3 13:53:39 | 显示全部楼层
本帖最后由 jackz007 于 2021-11-3 14:22 编辑
  1. def foo(arr):
  2.     d = []
  3.     print(arr[0] , end = '')
  4.     d . append(arr[0])
  5.     for i in range(1 , len(arr)):
  6.         if not arr[i] in d:
  7.             print(',%d' % arr[i] , end = '')
  8.             d . append(arr[i])
  9.     print()

  10. foo([11,11,11])
  11. foo([21,21,33,21])
复制代码

        运行实况:
  1. D:\0002.Exercise\Python>python x.py
  2. 11
  3. 21,33

  4. D:\0002.Exercise\Python>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-3 14:42:00 From FishC Mobile | 显示全部楼层
jackz007 发表于 2021-11-3 13:53
运行实况:

如果是C++该如何实现?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-3 15:12:05 | 显示全部楼层
本帖最后由 jhq999 于 2021-11-3 15:39 编辑
kkken 发表于 2021-11-3 14:42
如果是C++该如何实现?

  1. int fun(int* val,int len);
  2. int fun(int* val,int len)
  3. {
  4.         int i = 0,j=0,tmp=0;
  5.         len--;//为了方便减1
  6.         for ( i=0;i <=len; i++)//如果不减一循环条件i<len
  7.         {
  8.                 for (j = i+1; j <=len; j++)//如果不减一循环条件j<len
  9.                 {
  10.                         if (val[j]==val[i])//把重复的直接扔了,然后把最后面val[len]赋值到这里,同时把可用长度减1
  11.                         {
  12.                                 //tmp=val[j];
  13.                                 val[j]=val[len];//如果循环之前不减一,val[len-1];
  14.                                // val[len]=tmp;//如果想保留重复值可以和val[len]互换
  15.                                 len--;
  16.                         }
  17.                         if (val[j]<val[i])//从小大排序
  18.                         {
  19.                                 tmp=val[j];
  20.                                 val[j]=val[i];
  21.                                 val[i]=tmp;
  22.                         }
  23.                 }
  24.         }
  25.         len++;//如果循环之前不减一此处不必加一
  26.         return len;
  27. }
  28. int main()
  29. {
  30.   int val[]= {11,23,33,23,10,11,33,22,10,23,23};
  31.   int len=fun(val,sizeof(val)/4);
  32.   for (int i = 0; i < len; i++)
  33.   {
  34.           printf("%d,",val[i]);
  35.   }
  36.   return 0;
  37. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-3 15:12:25 | 显示全部楼层
kkken 发表于 2021-11-3 14:42
如果是C++该如何实现?
  1. #include <stdio.h>

  2. void sort(int d[] , int n)
  3. {
  4.         int i , j , t                   ;
  5.         if(n > 1) {
  6.                 for(i = 0 ; i < n - 1 ; i ++) {
  7.                         for(j = i + 1 ; j && d[j] < d[j - 1] ; j --) {
  8.                                 t = d[j - 1]    ;
  9.                                 d[j - 1] = d[j] ;
  10.                                 d[j] = t        ;
  11.                         }
  12.                 }
  13.         }
  14. }

  15. void foo(int d[] , int n)
  16. {
  17.         int i , k                                    ;
  18.         if(n > 0) {
  19.                 sort(d , n)                          ;
  20.                 printf("%d" , d[0])                  ;
  21.                 for(k = d[0] , i = 1 ; i < n ; i ++) {
  22.                         if(d[i] > k) {
  23.                                 printf(",%d" , d[i]) ;
  24.                                 k = d[i]             ;
  25.                         }
  26.                 }
  27.                 printf("\n")                         ;
  28.         }
  29. }

  30. int main(void)
  31. {
  32.         int a[] = {11,11,11} , b[] = {21,21,33,21}  ;
  33.         foo(a , 3)                                  ;
  34.         foo(b , 4)                                  ;
  35. }
复制代码

        编译、运行实况:
  1. D:\0002.Exercise\C>g++ -o x x.c

  2. D:\0002.Exercise\C>x
  3. 11
  4. 21,33

  5. D:\0002.Exercise\C>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-2 15:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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