菱形問題會編譯錯誤碼
『壹』 java列印菱形是不是有錯誤請高手指出 編譯中 出現k找不到符號!!!!
for (k = 1; k <= i; k++) {
沒有聲明k,改為for (int k = 1; k <= i; k++) {
『貳』 C語言列印菱形問題,會C的請進來幫下
#include"stdio.h"
int main() {
for(int i=-3;i<=3;i++){
for(int j=0;j<(i>0?i:-i);j++)
printf(" ");
for(j=0;j<(i>0?-2*i+7:2*i+7);j++)
printf("*");
printf("\n");
}
return 0;
}
夠簡練了吧?
編譯通過
『叄』 數字控制菱形輸出問題!
以菱形的中心為原點,邊長為n的菱形的所有的星號都在以下直線上
x+y=n-1;x-y=n-1;x+y=-(n-1);x-y=-(n-1);
把菱形存在一個二維字元數組中,先把所有元素置為空格,然後把菱形的邊所在的元素置為*。對於每一個菱形,在菱形的范圍內,分4個象限處理:從第1象限開始x--,y++、到第2象限x--,y--、到第3象限x++,y--、到第4象限x++,y++。
所以很簡單了
#include"conio.h"
#include"stdio.h"
#include"stdlib.h"
#definemaxlen40/*暫定最大邊長為40,菱形寬度為79字元,命令行方式一行能顯示的最大字元數為80*/
voidmain()
{
inti,j,state;/*state為象限值0-3代表1-4象限*/
intouter,inner;/*內外菱形的邊長*/
chardiamond[2*maxlen-1][2*maxlen-1];/*存放菱形的字元數組*/
scanf("%d%d",&outer,&inner);/*讀入變長*/
if(outer<inner)/*外<內,內外邊長交換*/
{i=outer;outer=inner;inner=i;}
for(i=0;i<outer*2;i++)/*存放菱形的字元數組全置為空格*/
for(j=0;j<outer*2;j++)
diamond[i][j]='';
outer--;
inner--;
i=outer;j=0;
for(state=0;state<4;)/*畫外菱形,從第1象限到第4象限*/
{diamond[i+outer][j+outer]='*';/*由於有坐標的變換,所以不能直接用[i][j],原坐標原點在菱形的中心,在新坐標下,原來的原點坐標為(n,n),n為邊長*/
switch(state)
{
case0:
i--;j++;
if(j==outer)state++;
break;
case1:
i--;j--;
if(i==-outer)state++;
break;
case2:
i++;j--;
if(j==-outer)state++;
break;
case3:
i++;j++;
if(i==outer)state++;
break;
}
}
i=inner;j=0;
for(state=0;state<4;)/*畫內菱形*/
{diamond[i+outer][j+outer]='*';
switch(state)
{
case0:
i--;j++;
if(j==inner)state++;
break;
case1:
i--;j--;
if(i==-inner)state++;
break;
case2:
i++;j--;
if(j==-inner)state++;
break;
case3:
i++;j++;
if(i==inner)state++;
break;
}
}
for(i=0;i<outer*2+1;i++)/*輸出圖像*/
{for(j=0;j<outer*2+1;j++)
printf("%c",diamond[i][j]);
printf("\n");
}
}
運行結果:圖形沒有問題吧
63
*
**
**
***
****
****
****
***
**
**
*
53
*
**
***
****
****
****
***
**
*
『肆』 C++菱形繼承,編譯不過,為什麼
菱形繼承會出現頂層基類的重復初始化,舉例說來: 類B繼承類A,類C繼承類A,類D繼承類B和類C,這就是一個菱形結構,那麼類A就會被初始化兩次,為了防止這樣的情況,就採用虛繼承。
『伍』 急!用java編寫的畫菱形小應用程序編譯通不過
你好好的調試,我想你會找到錯誤的