| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1969 人关注过本帖
标题:小习小习在汇编版发了一个打印九九乘法口诀,于是决定用C写了一个,发现还是 ...
只看楼主 加入收藏
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
也能弄出来  就是有2点

1、 输出还凑合吧
2、代码比较冗长

一一得一      
二一得二      二二得四      
三一得三      三二得六      三三得九      
四一得四      四二得八      四三得十 二   四四得十 六   
五一得五      五二得十      五三得十 五   五四得二 十   五五得二十五  
六一得六      六二得十 二   六三得十 八   六四得二十四  六五得三 十   六六得三十六  
七一得七      七二得十 四   七三得二十一  七四得二十八  七五得三十五  七六得四十二  七七得四十九  
八一得八      八二得十 六   八三得二十四  八四得三十二  八五得四 十   八六得四十八  八七得五十六  八八得六十四  
九一得九      九二得十 八   九三得二十七  九四得三十六  九五得四十五  九六得五十四  九七得六十三  九八得七十二  九九得八十一  


[ 本帖最后由 wp231957 于 2012-11-8 22:19 编辑 ]

DO IT YOURSELF !
2012-11-08 22:09
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
1.先找出最长的输出串,用这个长度来规限每组数据的格式,就可以整齐;
2.那得看你怎么设计的代码了,呵呵。

授人以渔,不授人以鱼。
2012-11-08 22:11
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
嘿嘿  代码都不好意思贴了

用了10多个IF语句

DO IT YOURSELF !
2012-11-08 22:20
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回忆一下汉字的编码,你就知道怎么做了。

授人以渔,不授人以鱼。
2012-11-08 22:24
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
我这就是硬编出来的 嘿嘿
程序代码:
#include <stdio.h>

int main(void)
{
    int i,j,jg;
    char *hz[10]={"","","","","","","","","",""};
    for(i=1;i<=9;i++)  //控制行
    {
        for(j=1;j<=i;j++)  //控制列
        {
           jg=i*j;
           if(jg<10) printf("%2s%2s得%-6s  ",hz[i-1],hz[j-1],hz[jg-1]);  //输出
           if(jg==10) printf("%s%2s得%-6s  ",hz[i-1],hz[j-1],hz[9]);  
           if(jg>10 && jg<20) printf("%2s%2s得%-3s%-3s  ",hz[i-1],hz[j-1],hz[9],hz[int(jg%10)-1]);
           if(jg==20 || jg==30 || jg==40) printf("%2s%2s得%-3s%-3s  ",hz[i-1],hz[j-1],hz[int(jg/10)-1],hz[9]);  
           if(jg>20 && jg<90 && jg!=30 && jg!=40) printf("%2s%2s得%2s%2s%2s  ",hz[i-1],hz[j-1],hz[int((jg-int(jg%10))/10)-1],hz[9],hz[int(jg%10)-1]); 
        }
        printf("\n");  //换行
    }
    return 0;
}



DO IT YOURSELF !
2012-11-08 22:36
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
这样不是利用了字符编码,再想一想吧,呵呵。思路:在put()数字i时把数字变成汉字,整个输出跟普通的数字输出一样。

授人以渔,不授人以鱼。
2012-11-08 22:40
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
比如 36能变成三十六  我还真想不到咋弄

DO IT YOURSELF !
2012-11-08 22:45
小习小习
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:6
帖 子:1467
专家分:4792
注 册:2012-7-2
收藏
得分:0 
顶啊,完全不懂

实现自己既定的目标,必须能耐得住寂寞单干。
2012-11-08 22:45
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
自己写一个print()函数!

授人以渔,不授人以鱼。
2012-11-08 22:47
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
我这个怎么样?
程序代码:
#include <stdio.h>
#include <tchar.h>

TCHAR zero[]  =  _T("");
TCHAR one[]   =  _T("");
TCHAR two[]   =  _T("");
TCHAR three[] =  _T("");
TCHAR four[]  =  _T("");
TCHAR five[]  =  _T("");
TCHAR six[]   =  _T("");
TCHAR seven[] =  _T("");
TCHAR eight[] =  _T("");
TCHAR nine[]  =  _T("");
TCHAR ten[]   =  _T("");

void PrintTable(int a, int b);
void PrintNumber(int n);

int main(void)
{
    int i, j;     

    for (i = 1; i <= 9; i++)
    {
        for (j = 1; j <= i; j++)  
            PrintTable(i, j);
        printf("\n");
    }

    return 0;
}

void PrintTable(int a, int b)
{
    int c = a * b;
    int d = c % 10;
    int e = c / 10;

    PrintNumber(b);
    PrintNumber(a);
    PrintNumber(0);

    if (e != 0)
    {
        PrintNumber(e);
        PrintNumber(10);
        if (d != 0)
        {
            PrintNumber(d);
            printf("  ");
        }
        else
        printf("    ");
    }
    else
    {
        PrintNumber(d);
        printf("      ");
    }
}

void PrintNumber(int n)
{
    switch (n)
    {
    case 0: wprintf(L"%S", zero); break;
    case 1: wprintf(L"%S", one); break;
    case 2: wprintf(L"%S", two); break;
    case 3: wprintf(L"%S", three); break;
    case 4: wprintf(L"%S", four); break;
    case 5: wprintf(L"%S", five); break;
    case 6: wprintf(L"%S", six); break;
    case 7: wprintf(L"%S", seven); break;
    case 8: wprintf(L"%S", eight); break;
    case 9: wprintf(L"%S", nine); break;
    case 10: wprintf(L"%S", ten); break;
    }
}
。。。
图片附件: 游客没有浏览图片的权限,请 登录注册


梅尚程荀
马谭杨奚







                                                       
2012-11-09 00:51
快速回复:小习小习在汇编版发了一个打印九九乘法口诀,于是决定用C写了一个,发 ...
数据加载中...
 
   



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

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