广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 4177 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为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.085962 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言