无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

《編程思維與實(shí)踐》1029.字符排序

2023-04-08 08:31 作者:風(fēng)淺葉墨  | 我要投稿

題目

思路

桶排序的思想,考慮到調(diào)用qsort進(jìn)行排序時是直接移動指針,那么數(shù)組中非字母字符的相對位置其實(shí)會發(fā)生改變,那就不能連帶著非字母字符一起排,故可以考慮將去除大寫字母和空格的字符串存在一個數(shù)組(桶)里并排好序, 同時再記錄哪個位置存儲著非字母(包括空格),輸出時判斷該位置是否為非字母即可.

代碼

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int?cmp(const?void?*a,const?void?*b)??????//qsort是會直接將指針移到后面,那么非字符的相對位置就也會發(fā)生變化?
{
????char?*m=(char*)a;
????char?*n=(char*)b;
????return?*m-*n;?
}

int?main()
{
????int?T;
????scanf("%d",&T);
????getchar();
????for(int?i=0;i<T;i++)
????{
????????char?s[201];???//讀取字符串
????????char?s1[201];???//去除非大寫字母和空格
????????int?pos[201]={0};??//記錄存儲位置哪里為非字母????非字母地方記為1
????????gets(s);
????????int?k=0,r=0;
????????for(int?j=0;j<strlen(s);j++)??
????????{
????????????if(s[j]>='A'&&s[j]<='Z')
????????????{
????????????????s1[k]=s[j];???
????????????????k++;
????????????}
????????????else
????????????{
????????????????pos[j]=1;
????????????}
????????}
????????s1[k]='\0';
????????qsort(s1,strlen(s1),sizeof(char),cmp);
????????printf("case?#%d:\n",i);
????????int?temp=0;
????????for(int?j=0;j<strlen(s);j++)
????????{
????????????if(pos[j]==1)
????????????{
????????????????printf("%c",s[j]);
????????????}
????????????else{
????????????????printf("%c",s1[temp]);
????????????????temp++;
????????????}
????????}
????????printf("\n");
????}
????return?0;
}


《編程思維與實(shí)踐》1029.字符排序的評論 (共 條)

分享到微博請遵守國家法律
米易县| 故城县| 疏勒县| 宜兰市| 尼勒克县| 临清市| 肇庆市| 竹溪县| 临澧县| 沂水县| 莱州市| 广昌县| 虎林市| 广平县| 景泰县| 白朗县| 龙州县| 嘉鱼县| 建德市| 论坛| 保山市| 济宁市| 虹口区| 黔南| 东兰县| 西畴县| 长乐市| 区。| 武陟县| 南充市| 普安县| 鱼台县| 什邡市| 昆明市| 通辽市| 济源市| 乌兰县| 遂昌县| 炉霍县| 乌鲁木齐县| 赤城县|