华为OJ题目 -- 初级篇(武研所平台)

来源:互联网 发布:淘宝代理ip 编辑:程序博客网 时间:2024/05/01 08:25

武研所OJ平台与华为机试OJ平台不一样,武研所需要完整的用户代码,而不是功能模块!

题目一:

字符串反序输出

#include <stdio.h>#define MAXCHAR 101int main(void){int i = 0;char ch=0;char inputString[MAXCHAR]={0};while((ch = getchar()) != EOF){if(ch == '\n'){inputString[i] = '\0';break;}inputString[i++] = ch;}while(--i>=0)putchar(inputString[i]);return 0;}

这个题目大家可以看到此OJ平台的尿性,输出需要用while来做,我一开始用fgets,妈的,怎么都报系统错误,后来换成while,好了!

题目二:

字符串字母不分大小写排序_其他字符原位置输出

#include <stdio.h>#define MAXCHAR 200typedef struct{char c;int val;}StringDeal;typedef struct{char c;int pos;}SpecialChar;void bubble_sort(StringDeal *sd,int len);int main(void){StringDeal sd[MAXCHAR];SpecialChar sc[MAXCHAR];char ch=0;int i=0,j=0,k=0;int m=0,n=0,p=0;char out[2*MAXCHAR] = {0};    while((ch=getchar())!= EOF){if(ch=='\n'){break;}if(ch>='A'&&ch<='Z') {sd[m+n].c=ch;sd[m+n].val = ch - 'A';m++;}else if(ch>='a'&&ch<='z') {sd[m+n].c=ch; sd[m+n].val = ch - 'a';n++;}else{sc[p].c = ch;sc[p].pos = i;p++;}i++;}bubble_sort(sd,m+n);for(j=0,i=0,k=0; j<p || i<m+n; k++){if(k == sc[j].pos){out[k] = sc[j].c;j++;continue;}out[k] = sd[i].c;i++;}out[k] = '\0';i=0;    while(out[i])        putchar(out[i++]);    return 0;}void bubble_sort(StringDeal *sd,int len){int i,j;char t1;int t2;char flag = 1;for(i=0; i<=len-2 && flag; i++){flag = 0;for(j=0; j<=len-2-i; j++){if(sd[j].val>sd[j+1].val){t2 = sd[j].val;sd[j].val = sd[j+1].val;sd[j+1].val = t2;t1 = sd[j].c;sd[j].c = sd[j+1].c;sd[j+1].c = t1;flag = 1;}}}}



0 0
原创粉丝点击