鱼C论坛

 找回密码
 立即注册
查看: 3463|回复: 12

请教一个C语言的题目

[复制链接]
发表于 2012-8-10 17:57:33 | 显示全部楼层 |阅读模式
3鱼币
本帖最后由 蓝色雨夜 于 2012-8-10 18:02 编辑

写一个程序,接受用户输入的整形数字。 然后以
_
| |
-
| |  的形式展示 , 比如  输入  123,那么打印出来应该
-       _    _
      |    |    |
         -    -
      |  |      |
         -    -

最佳答案

查看完整内容

七段显示判断的时候是这样的,判断的次序不是从0到9,我是先判断5->0->1->4->6->2->3这样的次序,实际上键盘符号- 和 |,连接起来显示的数字非常难看,不像单片机上有固定的位置,所以你别想取得和单片机上的显示效果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-8-10 17:57:34 | 显示全部楼层

七段显示判断的时候是这样的,判断的次序不是从0到9,我是先判断5->0->1->4->6->2->3这样的次序,实际上键盘符号- 和 |,连接起来显示的数字非常难看,不像单片机上有固定的位置,所以你别想取得和单片机上的显示效果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-8-11 09:18:46 | 显示全部楼层
字符串连接strcat就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-8-12 10:45:21 | 显示全部楼层
表示没看懂....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-8-12 14:28:32 | 显示全部楼层
是不是像 计算器那样显示(led那样)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-8-13 02:54:21 | 显示全部楼层
酒饭团 发表于 2012-8-12 14:28
是不是像 计算器那样显示(led那样)

嗯是的,我不知道怎么实现```:funk:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-8-13 09:28:47 | 显示全部楼层
本帖最后由 守夜人 于 2012-8-13 10:06 编辑

七段显示法

    0
5   1
   6
4    2
   3
这是一个完整的七段数字,通过控制0  1这两个开关,来将数字显示出来
digit[10][7]= {{1,1,1,1,1,1,0}};
一共10个数字,这是第一个的开关。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-8-13 12:55:04 | 显示全部楼层
本帖最后由 酒饭团 于 2012-8-13 13:01 编辑
蓝色雨夜 发表于 2012-8-13 02:54
嗯是的,我不知道怎么实现```

我想用二维数组来做,但是让他们相连有点难strcat应该可以,但是没做出来不知道二维数组怎么连,这是我的思路
#include "stdio.h"
#include "string.h"
char b[5][3];
void chushihua()
{
        int j,k;
for(j=0;j<5;j++)
          for(k=0;k<3;k++)
      b[j][k]=' ';

}
void output()
{
        int j,k;
for(j=0;j<5;j++)
                                 { for(k=0;k<3;k++)
                                      printf("%c",b[j][k]);
                                          printf("\n" );
                                 }


}
void main()
{
char a[10],c[5][3];
scanf("%s",a);


for(int i=0;i<strlen(a);i++)
{
         switch(a)
        {        case  '1':
                             chushihua();
                                 b[1][0]=b[3][0]='|';
                                output();
                        
                        break;
                case  '2':
                               chushihua();
                                 b[0][1]='-';
                                 b[1][2]='|';
                                 b[2][1]='-';
                                 b[3][0]='|';
                                 b[4][1]='-';
                         output();
                             break;
                case '3':
               chushihua();
                                 b[0][1]='-';
                                 b[1][2]='|';
                                 b[2][1]='-';
                                 b[3][2]='|';
                                 b[4][1]='-';
                                 output();
                                 break;
                                 
         
        }

         
}



}
(其他数字没有写,都是一样的思路)
这是1 2 3 的没有实现相连 能力有限
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-8-13 17:58:53 | 显示全部楼层
守夜人 发表于 2012-8-13 09:28
七段显示法

    0

这个是《C语言现代程序设计-现代方法》上面的题目。书我看过,可是不知道怎么写··
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-8-13 18:06:23 | 显示全部楼层
酒饭团 发表于 2012-8-13 12:55
我想用二维数组来做,但是让他们相连有点难strcat应该可以,但是没做出来不知道二维数组怎么连,这是我的 ...

你现在的思路和我之前一样,不过这样做出来的没用,因为我上面的程序123是在一起的,所以得一行行的处理。我现在的思路是先计算出你输入多少个数字然后再输出多少个8,再根据每个数的大小来开关7个段。
  —
| |
  —
| |
  —
这里一共是7段我想用1和0也就是真假来判断开和关实现数字大小
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-8-13 18:22:29 | 显示全部楼层
本帖最后由 守夜人 于 2012-8-13 18:23 编辑
蓝色雨夜 发表于 2012-8-13 17:58
这个是《C语言现代程序设计-现代方法》上面的题目。书我看过,可是不知道怎么写··


我的理解是这样:比如说 0 这个数字是digit[10][7]={{1,1,1,1,1,1,0}}判断一下数组的7个位置,为1则打印,为0则不打印
show(digit[])
{
     if(a[0][0]==1)
     {
      printf("-"); //就打印一条横
     }
    else
   {
    printf("");
    }

    if(a[0][1]==1) //就打印一条竖

    {
     printf("|");
     }
    else
    {
    printf(" ");
    }

}

就是这个思路,具体打印横竖的位置要程序验证
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-8-14 10:36:29 | 显示全部楼层
守夜人 发表于 2012-8-13 18:22
我的理解是这样:比如说 0 这个数字是digit[10][7]={{1,1,1,1,1,1,0}}判断一下数组的7个位置,为1则打印 ...

谢谢你还有耐心来指点我,没太懂你的意思,照我的思路是先输出第一行再输出第二行依次到第五行就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2012-8-20 17:47:01 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-18 04:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表