![]() |
|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
![]() ![]() |
|
主題工具 | 顯示模式 |
![]() |
#1 |
長老會員
|
![]() 原題目:
使用for迴圈畫出下列的圖形 * *** ***** ******* ********* ******* ***** *** * 但老師改成: 使用者輸入從1~79之中任一奇數且畫出該菱形,但要給使用者選擇缺哪邊的缺角(左上右下或右上左下兩種),然後原題目的*要改成1357913579... 例: 使用者輸入:11 缺角:左上右下 (*代表缺角處) 圖形為: 1 *35 **791 ***3579 ****13579 13579135791 35791**** 3579*** 135** 79* 1 本人大一新手剛學C 希望各位大大能開導我 ![]() |
![]() |
送花文章: 46,
![]() |
![]() |
#2 (permalink) |
管理版主
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() 不懂
使用者輸入:一奇數 是做什麼用的 ?? 先問一下 既然是 開導 ^^ 那請問您已經會寫原題目的菱形嗎? 會的話比較快(改一改就好了),請貼出來 不會的話給個提示: 用一個 1~9 的 for迴圈 裡面再計數 1、3、5、7、9,且給與列印 "*" 用 5-(*號的個數) 給列印 " " 用 計數奇數只要 i=1,i=i+2,當i大於9時i=1 當然還有其他方法,只是這應該是最容易理解的方法 還是寫一下好了 語法:
#include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int i,j,n; //i 表示幾顆星 int max=9; //菱形直徑 int x=max/2+1; //菱形半徑(無條件進一) i=-1; for(n=1;n<=x;n++){ //上半部 1~5 i=i+2; for(j=1;j<=x-n;j++) printf(" "); for(j=1;j<=i;j++) printf("*"); printf("\n"); } for(n=x-1;n>=1;n--){ //下半部 4~1 i=i-2; for(j=1;j<=x-n;j++) printf(" "); for(j=1;j<=i;j++) printf("*"); printf("\n"); } system("PAUSE"); return EXIT_SUCCESS; } |
![]() |
送花文章: 2027,
![]() |
![]() |
#4 (permalink) |
管理版主
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() 幫你寫好了
語法:
#include <conio.h> #include <stdio.h> #include <stdlib.h> using namespace std; int num=1,i,j,n; //num計數數字 i表示幾顆星 j計數用 n上下半部計數用 int max,x; //max菱形直徑 x菱形半徑 char lr; void PrintNum(); int main(int argc, char *argv[]) { printf("請輸入菱形直徑:"); scanf("%d",&max); printf("請輸入缺角處:左上右下請按[1]/右上左下請按[2]"); lr=getch(); printf("\n"); x=max/2+1; i=-1; for(n=1;n<=x;n++){ //上半部 i=i+2;//上半部 是遞增 for(j=1;j<=x-n;j++) printf(" "); PrintNum(); printf("\n"); } if(lr=='1') lr='2'; else lr='1'; for(n=x-1;n>=1;n--){ //下半部 i=i-2;//因為接下來是遞減 for(j=1;j<=x-n;j++) printf(" "); PrintNum(); printf("\n"); } system("PAUSE"); return EXIT_SUCCESS; } void PrintNum() { if(lr=='1') for(j=1;j<=i-n;j++) printf("*"); //選左上右下時先印 * for(j=1;j<=n;j++){ //依序填 1、2、5、7、9、1... printf("%d",num); num=num+2; if(num>9) num=1; } if(lr=='2') for(j=1;j<=i-n;j++) printf("*"); //選右上左下時後印 * // printf("%d",n); //除錯用 } |
![]() |
送花文章: 2027,
![]() |