c语言打印菱形解析

 1 #include <stdio.h>   
 2 void main()   
 3 {   
 4     int i,m=1;   
 5     for(i=0;i<19;i++)   
 6     {   
 7         printf("%*s\n",m<=10?10+m:30-m,"*******************"+(m<=10?20-2*m:2*m-20));   
 8         m++;   
 9     }   
10 }  

 // %.*s 其中的.*表示显示的精度 对字符串输出(s)类型来说就是宽度

// 这个*代表的值由后面的参数列表中的整数型(int)值给出


// 例如:

printf("%.*s\n", 1, "abc");        // 输出a

printf("%.*s\n", 2, "abc");        // 输出ab

printf("%.*s\n", 3, "abc");        // 输出abc >3是一样的效果 因为输出类型type = s,遇到'\0'会结束

printf("%*s",3,"abc"+2);          //输出3个字符的宽度,后边的+2是前边2个字符用空格替换
原文地址:https://www.cnblogs.com/lilongjiang/p/1830331.html