当前位置: 代码迷 >> 综合 >> 不使用 if 语句,使每相邻两数字之间有 ‘,‘?号
  详细解决方案

不使用 if 语句,使每相邻两数字之间有 ‘,‘?号

热度:35   发布时间:2024-02-13 01:57:22.0

一次偶然的机会我看到了一段很优雅的代码,短短的11行代码,却包含了数组,指针,字符串,循环等知识点

话不多说,看代码:

要求,不使用 if 语句,使每相邻两数字之间有 ‘,‘ 号

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

这段代码,没有使用 if 语句就将实现了题目的要求

其中重点是字符串 与 指针地址的巧妙运用

字符串也是指针,而指针存放的是地址,因此“,%d "+1,就相当于字符串“,%d"的首地址加1,即 %成为首地址  逗号 , 不会打印出来。

当 i = 0 时,!i =1;

当 i = 1时,!i=0 ,因为 !表示取反。

因此除了 第一次遍历时的 i=0,!i = 1 以外,后面的 !i=0;

此方法用最少的代码量完成了要求,很是惊艳。

  相关解决方案