![]() |
|
|||||||
| 論壇說明 | 標記討論區已讀 |
|
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
![]() |
|
|
主題工具 | 顯示模式 |
|
|
#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;
}
|
|
|
送花文章: 2057,
|
|
|
#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); //除錯用
}
|
|
|
送花文章: 2057,
|