360机试题:最后一个字符

来源:互联网 发布:spss数据相关性分析 编辑:程序博客网 时间:2024/06/03 14:53

题目内容如下:

样例输入输出:

我写的程序如下(欢迎指出错误):

#include <stdio.h>#include <malloc.h>#define MAX 100#define line 20void mygetline(char *s,int m){int c,i=0;while(((c=getchar())!=EOF)&& c!='\n' && c!=' '){s[i]=c;i++;if(i>=m){m*=2;s=(char*)realloc(s,sizeof(char)*m);}}s[i]='\0';}char firstch(char *s){int i,j,n=0;while(s[n]!='\0') n++;for(i=0;i<n;i++){int k,f2=0;/*判断之前是否和其有相等的字符*/for(k=0;k<i;k++){if(s[k]==s[i]) f2=1;}if(f2==0){/*判断该字符后面是否有相等的字符*/int flag=0;for(j=i+1;j<n;j++){if(s[j]==s[i]) flag=1;}if(flag==0){return s[i];}}}return ' ';}int main(){int ct;scanf("%d",&ct);getchar();/*定义20个指针*/char *mine[line];char mm[line];int i;for(i=0;i<ct;i++){/*指针一定要记得分配内存,初始化*/mine[i]=(char*)malloc(sizeof(char)*MAX);mygetline(mine[i],MAX);}for(i=0;i<ct;i++){mm[i]=firstch(mine[i]);}for(i=0;i<ct;i++){printf("%c\n",mm[i]);}/*释放内存*/for(i=0;i<ct;i++){free(mine[i]);}return 0;}


 

0 0
原创粉丝点击