此题解法,我将这个菱形放在了一个二维数组中,因为用二维数组可以界定X的边界,比较方便一点。 循环输出的时候,特别注意循环跳出的条件,你画个二维数组,体会一下里面的数学关系,多上机改改代码,呵呵。要特别注意 q 的用途哦。
#include<stdioh>
void main()
{
#define N 7 //定义二维数组的行和列
int i,j;
char a[N][N];
int q=N/2; //找到数组的中间列
char t,p; // 定义输出字符,t代表X,p代表Y
printf("qing shu ru X,Y:\n");
scanf("%c,%c",&t,&p); // 注意此处输入的时候,不要忘记“,”了哦
for(i=0;i<N;i++) //将二维数组的值全部先赋值为“空格”
for(j=0;j<N;j++)
a[i][j]=' ';
for(i=0;i<q;i++) //将菱形一分两半,这个是上半部分的输出,以中间列
{
//为开始,向两边扩展,为了输出X ,注意i循环到q-1
a[i][q-i]=t;
a[i][q+i]=t;
for(j=(q-i+1);j<(q+i);j++ ) //以两边的X列为边界,输出Y
a[i][j]=p;
}
for(i=q;i<N;i++) //这个是下半部分的输出,i从q开始循环到最后
{
a[i][q-(N-1-i)]=t; //仍然是从中间列开始向两边扩散,输出X
a[i][q+(N-1-i)]=t;
for(j=(q-(N-1-i)+1);j<(q+(N-1-i));j++ ) //从X边界开始从做到右输出Y
a[i][j]=p;
}
for(i=0;i<N;i++)
{
{for(j=0;j<N;j++)
printf("%c",a[i][j]);}
printf("\n");
}
}
我这里输出的是标准的菱形,中间的Y的个数和你给的不一样,如果你想要你的那种结果,只需要在输出Y的时候,将循环的边界再减一个,就可以了,不过图形是会变形,不会是菱形了。
上机运行的时候,把这些汉字清理了吧,要不可能编译出问题,好运~
#include"stdioh"
int main(void){
int i,j,k;
for(i=0;i<=3;i++) { // 循环4次,打出前4行
for(j=0;j<=2-i;j++)//设定每行前面的空格,每行都是2-i个
printf(" ");
for(k=0;k<=2i;k++)//循环打出2i-1个号,
printf("");
printf("\n"); //打完一行后换行
}
for(i=0;i<=2;i++) {//循环3次,打出后3行
for(j=0;j<=i;j++)//设定每行前面的空格,每行都是i个
printf(" ");
for(k=0;k<=4-2i;k++)//循环打出2(2-i)个号
printf("");
printf("\n"); //打完一行后换行
}
return 0;
按照你的要求编写的输出数字菱形的Python程序如下(abs是求绝对值的函数)
N=9
for i in range(1,N2):
for j in range(1,abs(N-i)+1):
print(' ',end='')
for j in range(N-abs(N-i),1,-1):
print(j,end='')
for j in range(1,N-abs(N-i)+1):
print(j,end='')
print()
源代码(注意源代码的缩进)
以上就是关于c语言程序设计输出菱形图!!!!全部的内容,包括:c语言程序设计输出菱形图!!!!、c语言输出菱形星号程序详解、请教如图所示Python输出数字菱形的代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)