① 請用c語言編寫字母金字塔
推薦答案有錯誤,其輸出結果為:
A
B B
C C C
而你要的是:
A
B B B
C C C C C
回答者: linghuxiaocong 的也不對,缺少輸入
我把推薦的改了下,符合你的要求
#include<stdio.h>
int main()
{ int i,j,n;
scanf("%d",&n);
while(n>=1)
{if(n>26)n=26;
for(i=1;i<=n;i++)
{for(j=1;j<=n-i;j++)printf(" ");
for(j=1;j<=2*i-1;j++)printf("%c ",i+'A'-1);
printf("\n");}
scanf("%d",&n);
}
system("PAUSE");
}
② 求C語言金字塔代碼思路!
這個圖形有幾行,就做幾次循環,每次循環列印一行:for ( i=0;i<N;i++ ),N=3
注意i在3行中取值:0,1,2
循環體中輸出每行,每行的構成:分為前邊的空格和後面的星號
每行的空格計數:第1行(i=0)空格數2,第2行(i=1)空格數1,第3行(i=2)空格數0
那麼在i循環中用i表示的空格數就是:總行數-當前行數-1=N-i-1
在i循環中新開一個循環來輸出空格,循環幾次輸出幾個空格
每行的星號計數:第1行(i=0)星號數1,第2行(i=1)星號數3,第3行(i=2)星號數5
那麼在i循環中用i表示的星號數就是:當前行數*2+1=i*2+1
在i循環中新開一個循環來輸出星號,循環幾次輸出幾個空格
最後每行需要一個換行符號輸出
最終你的程序為:
for ( i=0;i<n;i++ ) //這里n是行數
{ for ( j=0;j<n-i-1;j++ ) printf(" "); //可根據不同圖形更換j的循環結束條件公式
for ( j=0;j<i*2-1;j++ ) printf("*"); //可根據不同圖形更換j的循環結束條件公式
printf("
");
}
這樣,這種問題就變成了三個公式的總結問題:行數、空格數、星號數,總結出來套到程序中相應位置即可。總結是可以把i的值、空格的值、星號的值列出來,用一點序列的知識就可歸納出公式。
行號 0,1,2
空格 2,1,0 總行號-行號
星號 1,3,5 行號*2-1,這是等差數列
③ 請問金字塔用C語言怎麼編寫
給,已經編譯運行確認:
#include<conio.h>
#include<stdio.h>
int main()
{
int n,i,j,k;
printf("input n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(k=1;k<=2*(n-i);k++)
printf(" ");
for(j=1;j<=i;j++)
printf("%d ",j);
for(j=i-1;j>0;j--)
printf("%d ",j);
printf("\n");
}
getch();
return 1;
}
④ c語言要求輸入一個字母,輸出字母金字塔,要怎麼做
#include<stdio.h>
int main()
{int i,j;
char n;
printf("請輸入一個大寫字母:");
scanf("%c",&n);
for(i=0;i<=n-'A';i++)
{for(j=0;j<n-'A'-i;j++)
printf(" ");
for(j=0;j<=i;j++)
printf("%c",j+'A');
for(j=i-1;j>=0;j--)
printf("%c",j+'A');
printf(" ");
}
return 0;
}
⑤ 如何用c程序進行編寫字母金字塔。。。
#include<stdio.h>
#include<stdlib.h>
voidprintblank(inti,intn);//列印每行的空格
voidprintch(intn);//列印字母
intmain()
{
intn;
loop:printf("輸入你要金字塔層數n(<10):");
scanf("%d",&n);/*輸入金字塔的層數*/
if(n>0&&n<10)/*判斷輸入的層數有沒溢出*/
{
printch(n);//列印金字塔
}
else
{
printf("您的輸入有誤0<n<27 ");
gotoloop;
}
return0;
}
voidprintblank(inti,intn)/*列印每層前半部和後半部的空格*/
{
while(n-(i++)-1>0)
{
printf("");
}
}
voidprintch(intn)
{
inti,j;
charstr;
printf("%d層字母金字塔: ",n);
for(i=0;i<n;i++)
{
printblank(i,n);//列印每層前半部分面的空格
for(j=0,str='A';j<2*(i+1)-1;j++)
{
if(j>=i)
printf("%c",str--);
else
printf("%c",str++);
}
printf(" ");//換行
}
}
⑥ 如何用c語言編寫這個數字金字塔
#include
void main()
{
int i,j;
for (i=1;i<=3;++i) // 控制金字塔的層數,本例輸出3層,可以改變輸出任意層
{
for (j=1;j<=3-i;++j) // 控制金字塔每層前面輸出的空格數
printf(" ");
for (j=1;j<=2*i-1;++j) // 控制金字塔每層需要列印'*'的個數
printf("*");
printf("\n"); // 一層金字塔輸出完畢,換行繼續輸出下一層
}
}
⑦ C語言只用for循環製作字母金字塔!!
以下是代碼:
#include<stdio.h>
voidmain()
{
inti,j;
charc;
scanf("%c",&c);
for(i=0;i<5;i++)
{
for(j=4-i;j>0;j--)
printf("");
for(j=0;j<=i;j++)
printf("%c",c+j);
for(j=i;j>0;j--)
printf("%c",c+j-1);
for(j=4-i;j>0;j--)
printf("");
printf(" ");
}
}
以下是運行截圖:
滿意請採納!
⑧ 怎麼用c語言中的二維數組完成字母金字塔
字母金字塔有很多種形式,不過輸出的原理都是差不多的。
不用二維數組即可實現。如果用二維數組,就是把字母先寫到二維數組中,再一次性輸出。
以下以一個比較復雜的字母金字塔為例說明:
#include<stdio.h>
intmain()
{
chara[26][26];
intn;
inti,j;
chart;
scanf("%d",&n);
if(n>26||n<=0)return-1;
for(i=0;i<n;i++)
{
for(j=0;j<n-i-1;j++)
a[i][j]='';
t='A'+i;
for(;j<n;j++)
a[i][j]=t--;
t='B';
for(;j<n+i;j++)
a[i][j]=t++;
a[i][j]=0;
}
for(i=0;i<n;i++)
puts(a[i]);
return0;
}
輸入10的時候,效果是
⑨ 用c語言編寫星型金字塔
#include<stdio.h>
voidmain()
{
inta=0,b=4,c=1,d;
for(a=0;a<3;a++)
{
for(d=0;d<4;d++)putchar('');
for(d=0;d<c;d++)putchar('*');
for(d=0;d<4;d++)putchar('');
b-=2;
c+=2
}
}