1:首先应想到分奇偶进行运算,嵌套。认为其中简单易懂的一种是
#include<stdio.h>
int main()
{
int a,b,c,n;
printf("请输入一个数n为菱形行数:\n");
scanf("%d",&n);
if(n%2==0)
{
for(a=0;a<=n/2-1;a++)
{
for(b=1;b<=n/2-a;b++)
printf(" ");
for(c=0;c<=a*2;c++)
printf("*");
printf("\n");
}
for(a=1;a<=n/2;a++)
{for(b=1;b<=a;b++)
printf(" ");
for(c=0;c<=n-2*a;c++)
printf("*");
printf("\n");
}
}
else
{
for(a=0;a<=(n-1)/2;a++)
{
for(b=0;b<=(n-1)/2-a;b++)
printf(" ");
for(c=0;c<=2*a;c++)
printf("*");
printf("\n");
}
for(a=1;a<=(n-1)/2;a++)
{
for(b=0;b<=a;b++)
printf(" ");
for(c=1;c<=n-2*a;c++)
printf("*");
printf("\n");
}
}
return 0;
}
2:可以不对a,b,c直接定义,再找出行数与空格,星星之间的关系
3: 附上一点笔记 总结 %c 输出单个字符 %d以十进制输出带符号整数 e/E以指数形式输出单,双精度,默认六位小数
f以小数形式输出单,双精度实数,也是六位小数 o以八进制形式输出无符号整数(要注意不是0)
s输出字符串,参数为char指针,显示空字符之前的所有字符或指定数目的数字