顯示廣告
隱藏 ✕
看板 Programming
作者 abc1231qa (替咖~拉拉拉~)
標題 
 本來要出給學弟當練習的題目
時間 2010年11月12日 Fri. PM 03:10:41


讓使用者輸入一個奇數

然後用*畫成正方形 一圈一圈的畫出

如下

9
   1 2 3 4 5 6 7 8 9
 1*********
 2*       *
 3* ***** *
 4* *   * *
 5* * * * *
 6* *   * *
 7* ***** *
 8*       *
 9*********

13
   1 2 3 4 5 6 7 8 910111213
 1*************
 2*           *
 3* ********* *
 4* *       * *
 5* * ***** * *
 6* * *   * * *
 7* * * * * * *
 8* * *   * * *
 9* * ***** * *
10* *       * *
11* ********* *
12*           *
13*************

(數字不用畫上去~)








以下是我寫的code

寫了才發現寫這個是浪費時間

老師也不會考..............


另外 我覺得我寫得很鳥

一定有更好的寫法

歡迎大家討論~



[code=cpp]
#include<iostream>
#include<ctime>
#include<string>
using namespace std;
int main()
{
    string x1,x2;
    x1=" ";
    x2="*";
    int n = 0;
    cout<<"請輸入邊長 : ";
    cin>>n;
    cout<<"\n=========================================\n";
    //畫隔層輸出*
    for(int i =0 ; i<n ;i++)
    {
        for(int j = 0 ; j < n ;j++)
        {
            if(i%2==0)
            {
                if(i<n/2)
                {
                    if( (j<i) && (j%2==1) )
                    {
                        cout<<x1;
                    }
                    else if((j>=n-i) && (j%2==1))
                    {
                        cout<<x1;
                    }
                    else
                    {
                        cout<<x2;
                    }
                }
                else
                {
                    if( (j<n-i-1) && (j%2==1) )
                    {
                        cout<<x1;
                    }
                    else if((j>=i+1) && (j%2==1))
                    {
                        cout<<x1;
                    }
                    else
                    {
                        cout<<x2;
                    }
                }
            }
            else
            {
                if(i<n/2)
                {
                    if( (j<i) && (j%2==0) )
                    {
                        cout<<x2;
                    }
                    else if((j>=n-i) && (j%2==0))
                    {
                        cout<<x2;
                    }
                    else
                    {
                        cout<<x1;
                    }
                }
                else
                {
                    if( (j<n-i-1) && (j%2==0) )
                    {
                        cout<<x2;
                    }
                    else if((j>=i+1) && (j%2==0))
                    {
                        cout<<x2;
                    }
                    else
                    {
                        cout<<x1;
                    }
                }
            }
        }
        cout<<"\n";
    }
        cout<<"\n=========================================\n";


    system("pause");
    return 0 ;
}

--
※ 來源: Disp BBS 看板: Programming 文章連結: http://disp.cc/b/33-Kkh
※ 作者: abc1231qa  時間: 2010-11-12 15:10:41  來自: 114-44-210-20.dynamic.hinet.net
※ 看板: Programming 文章推薦值: -1 目前人氣: 0 累積人氣: 1525 
分享網址: 複製 已複製
( ̄︿ ̄)p abc1231qa 說瞎!
1樓 時間: 2010-11-12 15:11:52 (台灣)
+1 11-12 15:11 TW
偷懶沒有判斷奇數
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇
看板名稱: 確定(Enter) 取消(Esc) 搜尋(Space)
查詢帳號: 確定(Enter) 取消(Esc) 搜尋(Space)
搜尋: m)m文 b)進板 c)未分類 a)作者 /)標題 q)取消?[q]

搜尋 送出(Enter) 取消(Esc)

回覆文章至: f)看板 m)作者信箱 b)兩者皆是 q)取消?[f]
要引用原文嗎? y)引用原文 n)不引用 a)全部回覆 r)複製原文 q)取消?[y]
轉錄本文章於看板: 1)使用連結 2)使用複製 q)取消 ?[1]
轉寄至站內信箱於使用者: 確定(Enter) 取消(Esc)
轉寄至站內信箱於使用者: 確定(Enter) 取消(Esc)
修改文章標題為: 確定(Enter) 取消(Esc)
修改文章標題為: 確定(Enter) 取消(Esc) 全部(a)

確定要刪除這篇文章?(可按大U救回) 確定(Enter) 取消(Esc)

刪除理由:

確定(Enter) 取消(Esc)
加到這個分類: 確定(Enter) 下一層(→) 回上層(←) 取消(Esc)
你覺得這篇文章: 1)真讚 2)真瞎 q)取消?[1] (再選一次即可收回)
你覺得這篇文章: 1)值得推薦 2)表示反對 3)單純註解 q)取消?[3]
guest
預覽(Enter) 取消(Esc)
上傳圖片
按ctrl+Enter可輸入下一行。
guest
確定要送出? 確定(Enter) 取消(Esc) 繼續(e)
搜尋: 送出(Enter) 取消(Esc)

▏▎▍▌▋▊▉ 請按任意鍵繼續