加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

程序设计助教作业[1]

(2012-02-22 19:43:55)
标签:

杂谈

   本学期担任程序设计课的助教,为了更好的检查学生作业,我要求自己和学生做同样的作业。

 

   第一次作业要求如下:

 

   1.   关于argc, argv的练习。仔细观察下面程序的输出形式,编写相应程序实现该功能。

   c:\convert.exe –L C 2012

       贰零壹贰

   c:\convert.exe –L c 2148

       二一四八

   c:\convert.exe –L e 3417

       three four one seven

   c:\convert.exe –L E 7013

       SEVEN ZERO ONE THREE

   c:\convert.exe

        usage: convert –L command digit-string

        command = C|c|E|e

        example: convert –L C 2012

   c:\convert.exe 7012

        error input!

        usage: convert –L command digit-string

        command = C|c|E|e

        example: convert –L C 2012

 

大E,小e命令没有实现,同理可得。

 

#include "stdio.h"

char c_table[][4]={"零","一","二","三","四","五","六","七","八","九"};
char C_table[][4]={"零","壹","贰","叁","肆","伍","陆","柒","捌","氿"};
char error_str[]={"error input! \nusage:convert -L command digit-string \ncommand = C|c|E|e \nexample: convert -L C 2012\n"};
char command_table[]= {'c','C'};

typeof(c_table)* command_table_table[2] = {&c_table,&C_table};

void printf_error()
{
        printf("%s\n",error_str);
}

int main(int argc, char* argv[])
{
        if( 4 != argc || *(short*)argv[1] != *(short*)"-L")
        {
                printf_error();
                return 0;
        }

        for( int c = 0;c < sizeof(command_table)/sizeof(char);++c)
        {
                if( command_table[c] == argv[2][0] )
                {
                        for( int i = 0;'0' <= argv[3][i]&&argv[3][i] <= '9';i++)
                        {
                                printf("%s",(*command_table_table[c])[argv[3][i]-'0']);
                        }
                        printf("\n");
                        break;
                }
        }
}

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有