目录

回答摘录,以下全部转自知乎如何智能地在每个数字中间加一个「,」?

答主:Flint_Stone,我,最笨的方法,转换为字符串

答主:谷雨同学,我最喜欢这个,比较高深但是很实用,很简短

答主:醉卧沙场,最简单,最实用,最易懂

答主:hellojukay ,死磕if(并无贬义)

答主:明日香,三目运算符,融合在printf中,简化的if,也比较推荐


回答摘录,以下全部转自知乎如何智能地在每个数字中间加一个「,」?

问题:

头尾部都没有',',用c语言实现。

我感觉用if感觉太复杂了,有没有更简单的?

我现在还没有想到有效的方法。

有可能我没有说清楚。。。

例如:

输入:

a[6]={1,2,3,4,5,6}

输出:1,2,3,4,5,6

答主:[Flint_Stone],我,最笨的方法,转换为字符串

使用C还是C++,如果C++可以直接使用string

#include <string>
#include <iostream>using namespace std;int main()
{int a[6] = {1, 2, 3, 4, 5, 6}; // 数组以你的样例实现string res = "";for (int i = 0; i < 6; i++) // 6可变,变成数组元素个数{res += to_string(a[i]);res += ",";}res = res.substr(0, res.size() - 1); // 去掉最后一位逗号cout << res << endl;return 0;
}

这是我的C++方法,C语言不擅长,可以采用别的回答

答主:[谷雨同学],我最喜欢这个,比较高深但是很实用,很简短

看了一圈竟然没人说这种方法:

#include <stdio.h>
int main(void) {int a[6] = {1, 2, 3, 4, 5, 6}, i;for (i = 0; i < 6; i++) {printf(",%d" + !i, a[i]);}return 0;
}

一行输出,没有 if 语句,非常简洁

作者:谷雨同学
链接:https://www.zhihu.com/question/412135686/answer/1396323238

评论解释:

谷雨同学

重点是 ",%d"+!i 这个表达式。",%d" 是一个字符串,它可以转换为指向其首元素的指针,然后就可以做加减法。
!i 这个式子只有当 i 为零的时候得 1,其余时候得 0。

当 i 为零的时候,printf 的第一个参数就变成 ",%d"+1。这里首先执行从字符串到指针的转换,然后再做指针的+1运算,相当于指针向后移了一位,即指向 "%d"(这里需要一点基础才能看懂)。

所以 ,当 i 为零的时候,执行的输出是 printf("%d",a[i]); 而 i 非零的时候,执行的输出是 printf(",%d",a[i]);。这就实现了题主的要求。

这本质是指针偏移,理解后就会很简单,也会牢记在心,非常实用。

答主:[醉卧沙场],最简单,最实用,最易懂

#include <stdio.h>int main(void)
{int a[6]={1,2,3,4,5,6};int i;printf("%d", a[0]);for(i=1; i<sizeof(a)/sizeof(int); i++)printf(", %d", a[i]);printf("\n");return 0;
}

执行结果:

$ gcc -o mytest mytest.c -Wall
$ ./mytest
1, 2, 3, 4, 5, 6

答主:[hellojukay] ,死磕if(并无贬义)

if怎么就复杂了呢,不要强行给自己添加难度啊,去掉 if 算是"优化"吗,带来的好处是什么呢?

#include<stdio.h>int main(){int arr[6] = {1,2,3,4,5,6};int is_first = 1;for(int i = 0; i < 6; i++){if(is_first){printf("%d",arr[i]);is_first = 0;}else {printf(",%d",arr[i]);}}return 0;
}

这不就是 join 么...

#!/usr/bin/perl
use strict;
use warnings;my @arr = qw/1 3 4 5 6/;
my $str = join ",", @arr;
print "$str\n";

作者:hellojukay
链接:https://www.zhihu.com/question/412135686/answer/1402390611
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

每次做一个is_first判断,个人认为浪费。

答主:[明日香],三目运算符,融合在printf中,简化的if,也比较推荐

看了一圈为什么没有人这样写???

#include<stdio.h>int main()
{int a[10]={1,3,5,7,9,2,4,6,8,10};for(int i=0;i<=9;++i){printf(i?",%d":"%d",a[i]);}
}

这不比瞎折腾指针简单吗()

(吾曰:这不是瞎折腾指针)

作者:明日香
链接:https://www.zhihu.com/question/412135686/answer/1525787237
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你喜欢哪一个?

如何智能地在每个数组数字中间加一个「,」?相关推荐

  1. 给数子加千分号的方法(每三个数字后加一个逗号)

    public class signThousands { /** * 校验字符串是否为数字 * @param str * @return */ public static boolean isNum( ...

  2. 千分位显示方法(每三位数字之间加一个逗号显示)

    千分位显示方法一: export function numberToCurrencyNo(value) {if (!value) return 0// 获取整数部分const intPart = Ma ...

  3. 计算机一级表格减法,怎么把表格的数字全部加减

    1. 怎么让excel所有的数值被减去一个数 使用"选择性粘贴"或者是运算符号(+.-.*./). 方法一.使用选择性粘贴批量减去同一个数(结果在原位置显示): 1.在任意空单元格 ...

  4. 如何在表格数据中加同一个数_怎么在excel表格中的数字前统一加一个字母

    怎么在excel表格中的数字前统一加一个字母以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 怎么在excel表格中的数字 ...

  5. java 数组a赋值给数组b_java编程将a,b数组中不同的数字保存到一个新的数组中

    import java.util.Arrays; import java.util.HashSet; import java.util.Iterator; public class NumDemo { ...

  6. 快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值

    我觉得写得很清晰,希望没有侵犯作者的著作权,原文地址http://blog.csdn.net/hackbuteer1/article/details/6699642 快速找出一个数组中的两个数字,让这 ...

  7. vue 实现强制类型转换 ,将数字变为字符串,字符串变为数字,数组数字变为字符串、js对象转数组

    数字(number)转 字符串(string) 比如:22变为'22',直接加+' '即可 字符串(string)转 数字(number) 比如:'22'转22,在字符串后面*1 数组数字 转 数组字 ...

  8. 从“AI原生云”,看智能经济时代的新型数字底座

    文 | 曾响铃 来源 | 科技向令说(xiangling0815) 毫无疑问,云计算竞逐已经进入全面智能化阶段,几乎所有厂商都在自己的服务中加上智能化要素,以适应政企客户不断深化的转型需求. 但是,就 ...

  9. IEEE BigData 2022 | 同济大学第一届面向智能道路巡检的城市数字孪生(征稿与竞赛)...

    关注公众号,发现CV技术之美 IEEE BigData 2022 研讨会征稿与竞赛 第一届面向智能道路巡检的城市数字孪生(UDTIRI),快来赢取2500美刀奖金! 伴随着人工智能的快速发展,如今社会 ...

最新文章

  1. gin将请求体绑定到不同的结构体中
  2. k8s集群RBAC安全机制:role rolebing user
  3. 安装scipy报错,疑似缺少wheel包,解决方案
  4. linux内核驱动模块开发步骤及实例入门介绍
  5. Android之修改app名字客户需要升级需要注意的问题
  6. mariadb java_java 连接mariadb 无法获取数据源的问题,在ubuntu上部署的时候(原创)...
  7. 即时通信软件开发的年轻开发者曾注意到
  8. python的常量_如何给python中设定常量
  9. 为什么null为对象,并且null和undefined有什么区别?
  10. qregularexpression和qregexp的区别
  11. 21岁雅虎卖身引发一波怀旧 市值曾高达1250亿美元
  12. android 如何播放音频,android如何播放和录制音频
  13. 弘扬中国文化创作发展文学建设事业,间谈小说 “文味”和“接笔 ”的看法...
  14. SDUT—Python程序设计实验三(流程控制)
  15. Valine-实现QQ邮箱识别生成头像地址(完美解决头像问题)
  16. 隐蔽的API:基于RevitNET操作Revit文档。
  17. 从Q2财报看百度的转型三部曲
  18. 华科出身,师从贾佳亚,从鹅厂到创业,90后如何登上胡润U30?
  19. mipsel上移植花生壳域名服务
  20. 福建农林大学计算机与信息学院宿舍,2021福建农林大学宿舍条件和新生宿舍图片及分配规则分享...

热门文章

  1. IOS逆向学习-Tweak
  2. python3小技巧之:妙用string.punctuation
  3. ffmpeg rtsp问题总结
  4. 思科模拟器:利用一台型号为2960的交换机将2台pc机互连组建一个小型局域网
  5. MEM/MBA 写作-论证有效性分析(01) 概述
  6. AI实战:基于深度学习的空气质量预测模型开源代码汇总
  7. 怎么卸载nodejs?
  8. java开发门磁系统,门磁传感器工作原理及门磁系统在智能家居中应用
  9. Mesh的平面切割算法
  10. 解析 iOS 动画原理与实现