廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 4166 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
garnetcrow
數位造型
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[C/C++][求助] 學校作業請大大幫幫忙再次求救
作業是用for迴圈,輸入一個三角形底值,讓倒三角形變成空心的三角形
下面實心的倒三角形程式碼,要如何變成空心的倒三角形,我知道作業要自己做但實在想不出來,也不太懂迴圈的應用,請各位 ..

訪客只能看到部份內容,免費 加入會員 或由臉書 Google 可以看到全部內容



[ 此文章被garnetcrow在2005-12-02 18:20重新編輯 ]


獻花 x0 回到頂端 [樓 主] From:台灣中華電信 | Posted:2005-11-27 21:24 |
rakish
數位造型
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x18
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

首先..劃個表整理規則性

考慮

偶數的情況(n=10)
i   j  1234567891  
1 1~10 1111111111   i==1印
3 1~10 0100000010   j==2,9
5 1~10 0010000100   j==3,8
7 1~10 0001001000   j==4,7
9 1~10 0000110000   j==5,6
發現...相加11的時候印

奇數的情況(n=11)
i  j   12345678901
1 1~11 11111111111 i==1印
3 1~11 01000000010 j==2,10
5 1~11 00100000100 j==3,9
7 1~11 00010001000 j==4,8
9 1~11 00001010000 j==5,7
1 1~11 00000100000 j==6,6
發現相加12的時候印

i==1時
當j==(i+1)/2時
當j==base+1 - (i+1)/2時

複製程式
int main(void)
{       int base,i,j;
       printf("請輸入三角形底值:\n");
       scanf("%d",&base);
       
       for(i=1;i<=base;i=i+2){      
              for(j=1;j<=base;j++){    
              if((i==1)|((i+1)/2==j)|(base+1-((i+1)/2)==j)){printf("*");}else{printf(" ");}
       }printf("\n");
       }       
return 0;
} 


人一但長大了
就發現世上的事不像想的那麼好
你總是會一天天長大的
會看得越來越清楚
獻花 x1 回到頂端 [1 樓] From:台灣 | Posted:2005-11-28 19:27 |
garnetcrow
數位造型
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

謝謝這位大大的提供,雖然不是很懂我在研究看看


獻花 x0 回到頂端 [2 樓] From:台灣中華電信 | Posted:2005-11-30 01:04 |
garnetcrow
數位造型
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

這次是實心正三角形原始碼,要改成空心的正三角形,自己研究是印星星部份iF i=0,j=3;i=1,j=2,4;i=2,j=1,5;i=3,j要全印,else印空白!!
我很努力想但就是想不出來if那段要怎麼寫,才能印出正空心三角,請幫幫我謝謝各位大大!!

#include <stdio.h>
int main(void)
{
  int i,j,k;
  int n;
  printf("請輸入三角形底值奇數\n");
  scanf("%d",&n);
  for(i=0;i<n/2+1;i++)
  {
  for(j=0;j<n/2-i ;j++)
  printf(" ");
  for(j=0;j<i*2+1;j++)
  printf("*");
  printf("\n");
}
return 0;
}


獻花 x0 回到頂端 [3 樓] From:台灣中華電信 | Posted:2005-12-02 18:22 |
rakish
數位造型
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x18
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

12345678911
555551
4444111
33313331
221555551
1177777771
12345678901    
空格* 中間空格*
5* <---第一行只有一個*
4*1*   4空*1空*
3*3*   3空*3空* 其他的為等差數列
2*5*   2空*5空*
1*7*   1空*7空*
****** <---最後一行全部*

複製程式
#include <stdio.h>
#include <stdlib.h>

void rprint(int i,int j,int k){
    int n;
    if(i==k/2){ //第一行
        for(n=1;n<=i;n++){printf(" ");}
        printf("*\n");
        if(k!=1)rprint(i-1,j+1,k);
    }else{
        if(i>0){
        for(n=1;n<=i;n++){printf(" ");}printf("*");
        for(n=1;n<=j;n++){printf(" ");}printf("*\n");
        rprint(i-1,j+2,k); //等差
        }else
        {for(n=1;n<=k;n++){printf("*");}} //最後一行
    }
}

int main(void){
    int base;
    printf("input a odd number:\n");
    scanf("%d",&base);
    printf("-------------------\n");
    rprint(base/2,0,base);
}


人一但長大了
就發現世上的事不像想的那麼好
你總是會一天天長大的
會看得越來越清楚
獻花 x0 回到頂端 [4 樓] From:台灣 | Posted:2005-12-03 03:46 |
garnetcrow
數位造型
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

謝謝rakish大,在次幫忙!!


獻花 x0 回到頂端 [5 樓] From:台灣中華電信 | Posted:2005-12-04 03:03 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.018548 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言