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