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

一次偶然的机会我看到了一段很优雅的代码,短短的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;

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

猜你喜欢

转载自blog.csdn.net/weixin_49472648/article/details/108126256
今日推荐