| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 609 人关注过本帖
标题:程序纠正,帮忙看怎么改,谢谢!
只看楼主 加入收藏
cyy06180521
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2015-8-21
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
程序纠正,帮忙看怎么改,谢谢!
我想要的和出来的...
图片附件: 游客没有浏览图片的权限,请 登录注册

求大神更改
以下是代码:
程序代码:
#include <stdio.h>
#include <math.h>


int main( void ) 
{
    int c, r;
    int x, y;
    float xmin, ymin, xmax, ymax;    
    float x1, y1, x2, y2, x3, y3;  
    float x0, y0;
    float m1, m2, m3;


     
    printf("Enter c and r: ");
    scanf("%d %d", &r,&c);
      
    printf("Enter xmin, ymin: ");
    scanf("%f %f", &xmin, &ymin);
    
    printf("Enter xmax, ymax: ");
    scanf("%f %f", &xmax, &ymax); 
    
    printf("Enter x1, y1, x2, y2, x3, y3: ");
    scanf("%f %f %f %f %f %f", &x1, &y1, &x2, &y2, &x3, &y3);

    for(x = 0; x <= c + 1; x++) {        
        for(y = 0; y <= r + 1; y++) {
            
            x0 = ((xmax - xmin) / c) * (c - x) + xmin;
            y0 = ((ymax - ymin) / r) * (y - 1) + ymin;            
            
            m1 = ((y3 - y1) / (x3 -x1)) * (x0 - x3) + y3;
            m2 = ((y3 - y2) / (x3 -x2)) * (x0 - x2) + y2; 
            m3 = ((y1 - y2) / (x1 -x2)) * (x0 - x1) + y1;
            
            
            if(((x == 0) && (y == 0)) || ((x == c + 1) && (y == 0)) || ((x == 0) && (y == r + 1)) || ((x == c + 1) && (y == r + 1))) {
                printf("+");
            }    
            else if((x == 0) || (x == c + 1)){
                printf("-");
            }      
            
            else if((y == 0) || (y == r + 1)){
                printf("|");
            }    
  
            else if((y0 >= m1) && (y0 <= m2) && (y0 >= m3)){
                printf("*");
            }
            
            else{
                printf(" ");
            }
        }
        printf("\n");                  
    }   
    
    return 0;
}


我要用什么办法才能输出来和左边那个图一模一样的??

[ 本帖最后由 cyy06180521 于 2015-8-28 16:20 编辑 ]
2015-08-28 16:19
文江
Rank: 2
等 级:论坛游民
帖 子:77
专家分:20
注 册:2015-8-17
收藏
得分:0 
为什么这么复杂呢
2015-08-28 16:49
cyy06180521
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2015-8-21
收藏
得分:0 
回复 2楼 文江
有简单的吗.....还只是个菜鸟
2015-08-29 08:52
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:20 
第一,我不会去贴图,这是给自己和别人故意制造麻烦,我会写
+-----------+
|         * |
|       **  |
|     ***   |
|   ****    |
| *****     |
|  ***      |
|   *       |
+-----------+

第二,我不会要求别人照着屏幕输入数据,这是对别人的起码尊重,我会写
    unsigned c=11, r=7;
    double xmin=-1, xmax=1;
    double ymin= 0, ymax=1;

    double x1=-0.40, y1=-0.1;
    double x2= 0.95, y2= 1.1;
    double x3=-1.00, y3=0.33;

第三,我会给这段代码要干什么,怎么干的,等等,做个简单说明

总之,有些问题得不到别人的回复,常常是因为自己的原因
程序代码:
#include <stdio.h>

int main( void )
{
    unsigned c=11, r=7;
    double xmin=-1, xmax=1;
    double ymin= 0, ymax=1;

    double x1=-0.40, y1=-0.1;
    double x2= 0.95, y2= 1.1;
    double x3=-1.00, y3=0.33;

    for( unsigned y=0; y<=r+1; ++y )
    {
        for( unsigned x=0; x<=c+1; ++x )
        {
            if( (x==0 || x==c+1) && (y==0 || y==r+1) )
                putchar( '+' );
            else if( x==0 || x==c+1 )
                putchar( '|' );
            else if( y==0 || y==r+1 )
                putchar( '-' );
            else
            {
                double x0 = (xmax-xmin)/(c-1) * (x-1) + xmin;
                double y0 = ymax - (ymax-ymin)/(r-1) * (y-1);

                double m12 = (y2-y1)/(x2-x1) * (x0-x1) + y1;
                double m23 = (y3-y2)/(x3-x2) * (x0-x2) + y2;
                double m31 = (y1-y3)/(x1-x3) * (x0-x3) + y3;

                if( y0>=m12 && y0<m23 && y0>m31 )
                    putchar( '*' );
                else
                    putchar( ' ' );
            }
           
        }
        putchar( '\n' );
    }

    return 0;
}
输出
+-----------+
|         * |
|       **  |
|     ***   |
|   ****    |
| *****     |
|  ***      |
|   *       |
+-----------+


收到的鲜花
  • cyy061805212015-08-29 13:14 送鲜花  3朵  
2015-08-29 10:09
cyy06180521
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2015-8-21
收藏
得分:0 
回复 4楼 rjsp
好的,不好意思,我会吸取经验和教训,还有,非常感谢您的回复!!!
2015-08-29 13:13
cyy06180521
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2015-8-21
收藏
得分:0 
以下是引用rjsp在2015-8-29 10:09:30的发言:

第一,我不会去贴图,这是给自己和别人故意制造麻烦,我会写
+-----------+
|         * |
|       **  |
|     ***   |
|   ****    |
| *****     |
|  ***      |
|   *       |
+-----------+

第二,我不会要求别人照着屏幕输入数据,这是对别人的起码尊重,我会写
    unsigned c=11, r=7;
    double xmin=-1, xmax=1;
    double ymin= 0, ymax=1;

    double x1=-0.40, y1=-0.1;
    double x2= 0.95, y2= 1.1;
    double x3=-1.00, y3=0.33;

第三,我会给这段代码要干什么,怎么干的,等等,做个简单说明

总之,有些问题得不到别人的回复,常常是因为自己的原因
#include <stdio.h>

int main( void )
{
    unsigned c=11, r=7;
    double xmin=-1, xmax=1;
    double ymin= 0, ymax=1;

    double x1=-0.40, y1=-0.1;
    double x2= 0.95, y2= 1.1;
    double x3=-1.00, y3=0.33;

    for( unsigned y=0; y<=r+1; ++y )
    {
        for( unsigned x=0; x<=c+1; ++x )
        {
            if( (x==0 || x==c+1) && (y==0 || y==r+1) )
                putchar( '+' );
            else if( x==0 || x==c+1 )
                putchar( '|' );
            else if( y==0 || y==r+1 )
                putchar( '-' );
            else
            {
                double x0 = (xmax-xmin)/(c-1) * (x-1) + xmin;
                double y0 = ymax - (ymax-ymin)/(r-1) * (y-1);

                double m12 = (y2-y1)/(x2-x1) * (x0-x1) + y1;
                double m23 = (y3-y2)/(x3-x2) * (x0-x2) + y2;
                double m31 = (y1-y3)/(x1-x3) * (x0-x3) + y3;

                if( y0>=m12 && y0<m23 && y0>m31 )
                    putchar( '*' );
                else
                    putchar( ' ' );
            }
           
        }
        putchar( '\n' );
    }

    return 0;
}输出



大神,程序很好,这是我第一次看到胜利的曙光来着,不过因为我没有把数据打出来,然后可能您就弄错了,c和r反了.....我打c=7,r=11的时候出来是对的,我试着改来着,没有成功,您再帮看看呗,谢谢!
2015-08-29 13:57
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
回复 6楼 cyy06180521
听不懂你在说什么,也不知道你想要我干什么
2015-08-29 14:11
cyy06180521
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2015-8-21
收藏
得分:0 
回复 7楼 rjsp
没事了.............我看反了大神V55555
2015-08-29 14:25
快速回复:程序纠正,帮忙看怎么改,谢谢!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019577 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved