你看看 代碼 敲一敲 你就會了 ,
創(chuàng)新互聯(lián)公司服務(wù)項目包括睢寧縣網(wǎng)站建設(shè)、睢寧縣網(wǎng)站制作、睢寧縣網(wǎng)頁制作以及睢寧縣網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,睢寧縣網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到睢寧縣省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
我給你代碼寫了,注釋不是也可以給你直接 寫嗎?
這個要自己去理解其中的循環(huán)原理才回有效的!??? (我原來學(xué)習(xí)Java 就是這樣的)
希望你可以搞懂啊!
java打印菱形通過二維數(shù)組來打印,實例如下:
int?hangshu?=?11;
int?yiban?=?hangshu?/?2?+?1;
int?yibanduo?=?hangshu?/?2;
System.out.println("空心菱形:");
for(int?k?=?1;k?=?yiban;k++){
for(int?i?=?1;i?=?(yiban?-?k);i++){
System.out.print("?");
}
System.out.print("*");
for(int?i?=?1;i?=?(?(k?-?2)?*?2?+?1);i++){
System.out.print("?");
}
if(k?!=?1){
System.out.print("*");
}
System.out.println();
}
for(int?k?=?yibanduo;k?=1;k--){
for(int?i?=?1;i?=?(yiban?-?k);i++){
System.out.print("?");
}
System.out.print("*");
for(int?i?=?1;i?=?(?(k?-?2)?*?2?+?1);i++){
System.out.print("?");
}
if(k?!=?1){
System.out.print("*");
}
System.out.println();
}
System.out.println("實心菱形:");
for(int?i?=?1;i?=?hangshu;i++){
if(i?=?hangshu/2?+?1){
for(int?k?=?1;k?=?hangshu/2?+?1-?i;k++){
System.out.print("?");
}
for(int?k?=?1;k?=?i;k++){
System.out.print("*?");
}
System.out.println();
}else{
for(int?k?=1;k?=?(i?-(hangshu/2?+?1));k++){
System.out.print("?");
}
for(int?k?=?1;k?=?(2?*(hangshu/2?+?1)?-?i);k++){
System.out.print("*?");
}
System.out.println();
}
}
結(jié)果如下:
顯示效果是這樣的:
代碼如下:
int?hangshu?=?11;
int?yiban?=?hangshu?/?2?+?1;
int?yibanduo?=?hangshu?/?2;
System.out.println("空心菱形:");
for(int?k?=?1;k?=?yiban;k++){
for(int?i?=?1;i?=?(yiban?-?k);i++){
System.out.print("?");
}
System.out.print("*");
for(int?i?=?1;i?=?(?(k?-?2)?*?2?+?1);i++){
System.out.print("?");
}
if(k?!=?1){
System.out.print("*");????
}
System.out.println();
}
for(int?k?=?yibanduo;k?=1;k--){
for(int?i?=?1;i?=?(yiban?-?k);i++){
System.out.print("?");
}
System.out.print("*");
for(int?i?=?1;i?=?(?(k?-?2)?*?2?+?1);i++){
System.out.print("?");
}
if(k?!=?1){
System.out.print("*");????
}
System.out.println();
}
System.out.println("實心菱形:");
for(int?i?=?1;i?=?hangshu;i++){
if(i?=?hangshu/2?+?1){
for(int?k?=?1;k?=?hangshu/2?+?1-?i;k++){
System.out.print("?");
}
for(int?k?=?1;k?=?i;k++){
System.out.print("*?");
}
System.out.println();
}else{
for(int?k?=1;k?=?(i?-(hangshu/2?+?1));k++){
System.out.print("?");
}
for(int?k?=?1;k?=?(2?*(hangshu/2?+?1)?-?i);k++){
System.out.print("*?");
}
System.out.println();
}????
}
囧字再看看
這樣的代碼光是看是很難看明白的,自己舉個例子簡單地在紙上寫一寫畫一畫,就比較容易明白了。
假定size=5,可以想像一下菱形的形狀,size/2+1=3,按以上代碼的邏輯來看,就是先處理上面的3行,然后處理下面剩下的2行。
處理上面3行的時候,每一行需要根據(jù)行數(shù)分別輸出*和空格。先看第1行,i==0.
for (int i = 0; i size / 2 + 1; i++) {
for (int j = size / 2 + 1; j i + 1; j--) {
System.out.print(" ");// 輸出左上角位置空白
}
這段代碼此時的i==1,內(nèi)層循環(huán)走完以后,會輸出2次空格(j==3,j==2時),
然后依次往下走。
不得不說,上面的代碼寫的太復(fù)雜了,這么多for循環(huán),看著好費勁的說~~