XMU C语言程序设计实践(2)
任务一:颠倒的世界
小明最近突然喜欢倒着写字,写出来的句子全是颠倒的,也就是把一句话里的字符全都逆序写,譬如“I Love This Game!”,他就偏偏要写成“!emaG sihT evoL I”弄的小华同他Email交流都很难受。请你帮助小华解决这个问题,将输入的字符串全都还原成本来的面目。
任务1要求:
利用main函数带参数的功能,编写程序,将命令行中的字符串全部逆序显示出来。例如编写的可执行文件为go.exe 那么运行 go !emaG sihT evoL I 时,显示出I Love This Game!
任务二:时间转换
由于工作原因,小明常常需要签署文件日期,但他比较偷懒,都用阿拉伯数字签署,譬如3.8表示三月八日,7.12表示七月十二日。最近公司改组成外资企业,主管要求将所有的日期全部更改为英文表示,一来同国际接轨,二来也不容易篡改,譬如将3.8表示为March the eighth 面对这么多的日期,小明犯愁了,他英文不好,那么多的英文单词他记不住。而且小明还是个马大哈,有时候居然会签出3.32(三月三十二日)这样的日期,为了避免被上司责备,趁着这次机会也赶快一并修改。请你帮助小明完成这个任务。
任务2要求:
利用main函数带参数的功能,编写程序,将命令行中的字符串翻译成英文表示,每行显示一个日期,同时需检查日期表示是否有误,如有误,请给出提示。例如:编写的可执行文件为go.exe 那么运行go
3.8 5.5 4.38 时显示March the eighth
May the fifth
Error
任务三:时间转换(续)
小明觉得这么一点点的手工输入还是有点麻烦,他把需要翻译的日期都整理到文本文件in.txt中,请你帮助小明,将其中的内容翻译完毕后保存到文本文件out.txt中,便于他统一处理。
任务3要求:翻译过程同任务2,将结果保存至文件out.txt中
第一题:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
#define abs(a) ((a)>0?(a):(-(a)))
#define sqr(a) ((a)*(a))
#define swap(a,b) (a)^=(b),(b)^=(a),(a)^=(b)
#define eps 1e-8
#define MAX 0x7f7f7f7f
#define N 104
int a[N];
int main(int argc,char* argv[])
{
int i,j,k;
for(i=argc-;i>;i--)
{
for(j=strlen(argv[i])-;j>=;j--)
putchar(argv[i][j]);
printf(" ");
}
puts("");
return ;
}
/*
Q:\xxx\111\222\bin\Debug\222 !emaG sihT evoL I
*/
第二题:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
#define abs(a) ((a)>0?(a):(-(a)))
#define sqr(a) ((a)*(a))
#define swap(a,b) (a)^=(b),(b)^=(a),(a)^=(b)
#define eps 1e-8
#define MAX 0x7f7f7f7f
#define N 104
int m,d;
int mon[]={,,,,,,,,,,,,};
char *M[]={"","January","February","March","April","May","June","July","August","September","October","November","December"};
char *D[]={"","first","second","third","fourth","fifth","sixth","seventh","eighth","ninth","tenth","eleventh","twelfth","thirteenth","fourteenth","fifteenth","sixteenth","seventeenth","eighteenth","nineteenth","twentieth","twenty-first","twenty-second","twenty-third","twenty-fourth","twenty-fifth","twenty-sixth","twenty-seventh","twenty-eighth","twenty-ninth","thirtieth","thirty-first"};
void work(char s[])
{
int i;
m=d=;
if(s[]=='.')
{
m=(s[]-'')*+s[]-'';
i=;
}
else if(s[]=='.')
{
m=s[]-'';
i=;
}
for(;i<strlen(s);i++)
d=d*+s[i]-'';
}
int main(int argc,char * argv[])
{
int i,j,k;
for(i=;i<argc;i++)
{
work(argv[i]);
if(d>mon[m] || d< || m> ||m<)puts("Error");
else printf("%s the %s",*(M+m),*(D+d));
puts("");
}
return ;
}
/*
Q:\xxx\111\222\bin\Debug\222 3.8 5.5 4.38
*/
第三题:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
#define abs(a) ((a)>0?(a):(-(a)))
#define sqr(a) ((a)*(a))
#define swap(a,b) (a)^=(b),(b)^=(a),(a)^=(b)
#define eps 1e-8
#define MAX 0x7f7f7f7f
#define N 1004
int m,d;
int mon[]={,,,,,,,,,,,,};
char argv[N];
char *M[]={"","January","February","March","April","May","June","July","August","September","October","November","December"};
char *D[]={"","first","second","third","fourth","fifth","sixth","seventh","eighth","ninth","tenth","eleventh","twelfth","thirteenth","fourteenth","fifteenth","sixteenth","seventeenth","eighteenth","nineteenth","twentieth","twenty-first","twenty-second","twenty-third","twenty-fourth","twenty-fifth","twenty-sixth","twenty-seventh","twenty-eighth","twenty-ninth","thirtieth","thirty-first"};
void work(char s[])
{
int i;
m=d=;
if(s[]=='.')
{
m=(s[]-'')*+s[]-'';
i=;
}
else if(s[]=='.')
{
m=s[]-'';
i=;
}
for(;i<strlen(s);i++)
d=d*+s[i]-'';
}
int main()
{
FILE *fp1=fopen("Q:\\xxx\\111\\111\\in.txt","r"),*fp=fopen("Q:\\xxx\\111\\111\\out.txt","w");
int i,j,k;
while(~fscanf(fp1,"%s",argv))
{
work(argv);
if(d>mon[m] || d< || m> ||m<)fputs("Error\n",fp);
else fprintf(fp,"%s the %s\n",*(M+m),*(D+d));
}
fclose(fp1);
fclose(fp);
return ;
}
/*
Q:\xxx\111\111\bin\Debug\111 3.8 5.5 4.38 13.1 1.32 1.0 2.29 115123 3.31
*/
XMU C语言程序设计实践(2)的更多相关文章
- XMU C语言程序设计实践(1)
题目: 任务1:英雄出世 炎热的夏天午后,小明正在百无聊赖地写c语言程序.忽然,电脑屏幕一阵抖动,浮现下面18×18个看似杂乱无章的数字: 32, 32, 32, 32, 32, 32, ...
- XMU C语言程序设计实践(5)
• 使用动态链表完成一个简单的商品库存信息管理系统. • 商品信息包括如下字段:商品号.商品名称.商品库存 • 函数 create:接收用户输入的商品号和商品名称的 ...
- XMU C语言程序设计实践(4)
以下实验二选一. 1.使用队列实现迷宫算法,找到最短路径. 2.实现顺序队列和链队列的所有基本操作,InitQueue(&Q):DestroyQueue(&Q):ClearQueue( ...
- XMU C语言程序设计实践(3)
问题描述: 以一个n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍,设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论. 对于本问题需用栈实现“穷举求解”算法,即:从 ...
- 第二章 C语言编程实践
上章回顾 宏定义特点和注意细节 条件编译特点和主要用处 文件包含的路径查询规则 C语言扩展宏定义的用法 第二章 第二章 C语言编程实践 C语言编程实践 预习检查 异或的运算符是什么 宏定义最主要的特点 ...
- C语言程序设计课程总结
第一次教授C语言程序设计课程,相比计算机组成原理.arm体系结构等偏向硬件的课程,C的教学方式要灵活一些.计算机组成原理课程偏向理论,哈尔滨工业大学的计算机组成原理是国家精品课,增加了mooc+spo ...
- 【任务】Python语言程序设计.MOOC学习
[博客导航] [Python导航] 任务 18年11月29日开始,通过9周时间跨度,投入约50小时时间,在19年1月25日之前,完成中国大学MOOC平台上的<Python语言程序设计>课程 ...
- 2019年春季学期《C语言程序设计II》助教注意事项
本学期<C语言程序设计II>课程安排 理论课时24(1-12周),实验课时8(13周),课程设计课时16(14-15周) 理论课教学内容 附:教学进度表 本学期实验课和课程设计参考教材 & ...
- C语言程序设计实习报告
C语言程序设计实习报告 简介 语言实践心得体会范文在科技高度发展的今天,计算机在人们之中的作用越来越突出.而c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此, ...
随机推荐
- 开门人和关门人(结构体+sort)
每天第一个到机房的人要把门打开,最后一个离开的人要把门关好.现有一堆杂乱的机房签 到.签离记录,请根据记录找出当天开门和关门的人. Input 测试输入的第一行给出记录的总天数N ( > ...
- 【HIHOCODER 1575】 两个机器人(BFS)
描述 一个N × M的2D迷宫中有两个机器人.机器人A在迷宫左上角,只能向右或向下移动:机器人B在迷宫右下角,只能向左或向上移动.机器人不能移动到迷宫外.此外,由于奇怪的同步机制,这两个机器人只能同时 ...
- manjaro xfce 18.0 踩坑记录
manjaro xfce 18.0 踩坑记录 1 简介1.1 Manjaro Linux1.2 开发桌面环境2 自动打开 NumLock3 系统快照3.1 安装timeshift3.2 使用times ...
- python编程之API入门: (二)python3中使用新浪微博API
回顾API使用的流程 通过百度地图API的使用,我理解API调用的一般流程为:生成API规定格式的url->通过urllib读取url中数据->对json格式的数据进行解析.下一步,开始研 ...
- 65.什么是IOC?【从零开始学Spring Boot】
[从零开始学习Spirng Boot-常见异常汇总] 这个小节吧,是无意当中看了一篇文章,觉得介绍的特别好,引用到我的博客中,让大家也乐下.那么他是怎么解说IOC的呢?看如下: 套用好莱坞的一句名言就 ...
- 禁止ScrollView在子控件的布局改变时自动滚动的的方法
重写scrollview中的如下方法,并将其返回值设为0即可. @Override protected int computeScrollDeltaToGetChildRectOnScreen(Re ...
- vscode 打开新文件覆盖窗口,始终显示一个窗口
一直在使用vscode 编辑器,里面的扩展用的比较舒服,但是最近遇到一个小问题,一直也没有找好的解决办法,今天无意中把问题给解决了.具体如下 之前使用编辑器,可以同时打开多个文件,而且是多窗口展示的, ...
- CodeIgniter框架的缓存原理分解
用缓存的目的:(手册上叙述如下,已经写得很清楚了) Codeigniter 支持缓存技术,以达到最快的速度. 尽管CI已经相当高效了,但是网页中的动态内容.主机的内存CPU 和数据库读取速度等因素直接 ...
- [Bzoj2286][Sdoi2011]消耗战(虚树模板题附讲解)
2286: [Sdoi2011]消耗战 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 4896 Solved: 1824[Submit][Statu ...
- 基于sentry的前端错误监控日志系统(部署sentry服务器/前端项目部署)-让前端最快的定位到生产问题
背景 在这越来越发达的网络时代,web应用也是越来越复杂,尤其是前端的开发,也是越来越受重视. 所以在我们前端开发完成后,会有一些列的web应用的上线验证,如自测.QA测试.code review 等 ...