华为上机笔试题
2015-09-07 23:04
330 查看
摘要:构建一个dos命令行界面的MP3界面,可以输入u,d,l,r四种命令,代表上下左右翻滚,并且当前选择的歌曲由一个[]标记.当输入混合指令如uullr时,按顺序计算最后到达的页面.
基本思路:本题没有什么算法可言,主要是注意细节上的问题,比如界面翻到了第几页,剩下多少首歌,什么时候应该从底翻到顶等等.代码比较杂乱不清,是很久以前的东西了,有时间再修改吧、
// test_kong.cpp : 定义控制台应用程序的入口点。//
#include "stdafx.h" #include "string.h" int _tmain(int argc, _TCHAR* argv[]) { int n=0,i; int k = 0; int m =0; int t = 1; int r = 0; char s[10]={0}; printf("please input the number of songs n =:"); scanf("%d",&n); for(int i =1;i<=4;i++) { if(i==1) printf("[ "); if(i==2) printf("] "); printf("%d",i); } printf("\n"); while(1) { printf("please input the command:"); scanf("%s",s); if (s[0]=='e') { printf("MP3 is exited"); break; } if(n<=0) { printf("there is no song\n"); } else//n>0 { if(s[0]!='u'&&s[0]!='d'&&s[0]!='l'&&s[0]!='r') { printf("the command is wrong\n"); break; } if (n<=4) { for ( i =1;i<=n;i++) { if(i==1) printf("[ "); if(i==2) printf("] "); printf("%d ",i); } printf("up or down is unavaiable"); } else//n>=4 { m =(n%4!=0?(n/4)+1:(n/4)); k = n % 4; for( i =0;i<=strlen(s)-1;i++) { if (s[i]=='d') { r=0; if(t<m) t+=1; else t = 1; } else if (s[i]=='u') { r=0; if(t>1) t-=1; else t +=m-1; }// u }// compute up or down }//n>=4 for( i =0;i<=strlen(s)-1;i++) { if (s[i]=='r') { if (t==m&&r>=k-1)//r代表当前光标,从0开始算起 { r = 0; t = 1; } else if(r>=3) { t+=1; r -=3; } else r+=1; } if (s[i]=='l') { if (t==1&&r<=0) { t = m; r = 0; } else if (r<=0) { t = t-1; r+=3; } else r-=1; }//command : l }//compute l r // output if(t==m) { for(int i =1+(m-1)*4;i<=n;i++) { if(i==r+1+(m-1)*4) { printf("[ "); printf("%d ",i); printf("] "); } else printf("%d ",i); } printf("\n"); }//t==m else { for(int i = 1+(t-1)*4;i<1+t*4;i++) { if(i==r+1+(t-1)*4) { printf("[ "); printf("%d ",i); printf("] "); } else printf("%d ",i); } printf("\n"); }//t!=m }// n>0 }//while return 0; }
相关文章推荐
- 容斥定理
- 项目制图的简单准备
- sublime的使用
- poj1984 带权并查集
- 【趟坑】公共引用的jar包 pom的配置方法
- Java记录 -23- equals方法和双等号解析
- Objective-C Runtime 运行时(二):成员变量与属性
- 为什么支持Oauth2.0 的邮箱更安全?
- 为什么支持Oauth2.0 的邮箱更安全?
- uva 11478 - Halum(BellmanFold)
- php中日期时间函数date()用法总结
- Python 读取csv的某列
- hdu 1058 humble number
- Ubuntu下 Redis安装
- UVA 11992 Fast Matrix Operations (降维)
- JQ之html,text,val
- objective-c ios webkit 本地存储local-storage
- Oracle同义词synonym用法小结
- Cocos2dx引擎笔记——综述
- Hibernate(二)