輸入一個字串,字串里全是小寫字母比如 char a[20]="bcadfgih"
對其中的小寫字母進行從小到大排序(a最小z最大) 以上面為例 a[20]變為"abcdfghi"
(使用排序演算法)
再輸入一一個字符 比如char b='e',插入拍完序的a[20]中,插入規則是插入比b小和比b大的字符中,
比如上面的 a[20]="abcdefghi"
uj5u.com熱心網友回復:
排序和插入操作。不是很難的問題,建議樓主自己先試試,遇到問題再提出來吧uj5u.com熱心網友回復:
基本實作功能,沒有優化。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 20
//排序
void cSort(char a[], int n)
{
int i, j;
char tmp;
for (i = 0; i < n - 1; i++)
{
for (j = 0; j < n - i - 1; j++)
{
if (a[j] > a[j + 1])
{
tmp = a[j];
a[j] = a[j + 1];
a[j + 1] = tmp;
}
}
}
}
//插入
void cInsert(char a[], int n, char b)
{
int i, index = 0;
for (i = 0; i < n; i++)
{
if (a[i] > b)
{
index = i;
break;
}
}
for (i = n; i >= index; i--)
{
a[i] = a[i-1];
}
a[index] = b;
}
int main(void)
{
char a[N] = { 0 }, t;
printf("輸入一個字串(小寫字母):\n");
scanf("%s", a);
int n = strlen(a);
if (n <= N - 1)
{
cSort(a, n);
}
else
{
printf("字串越界!\n");
exit(1);
}
printf("排序后字串:\n%s\n", a);
getchar();
if (n < N - 1)
{
printf("輸入要插入的字符:\n");
scanf("%c", &t);
cInsert(a, n, t);
}
else
{
printf("字串已達上限,不能插入字符。\n");
}
printf("%s\n", a);
system("pause");
return 0;
}
uj5u.com熱心網友回復:
//輸入一個字串,字串里全是小寫字母比如 char a[20]="bcadfgih"
//對其中的小寫字母進行從小到大排序(a最小z最大) 以上面為例 a[20]變為"abcdfghi"
//(使用排序演算法)
//再輸入一一個字符 比如char b='e',插入拍完序的a[20]中,插入規則是插入比b小和比b大的字符中,
//比如上面的 a[20]="abcdefghi"
#include <stdio.h>
#include <string.h>
int main() {
char a[20],b;
int i,j,N;
fgets(a,19,stdin);
N=strlen(a);
if ('\n'==a[N-1]) {a[N-1]=0;N--;}
printf("%s\n",a);
for (i=0;i<N-1;i++) {
for (j=i+1;j<N;j++) {
if (a[i]>a[j]) {
b=a[i];a[i]=a[j];a[j]=b;
}
}
}
printf("%s\n",a);
rewind(stdin);
b=getchar();
for (i=0;i<N;i++) {
if (b<a[i]) {
for (j=N;j>=i;j--) a[j+1]=a[j];
a[i]=b;
break;
}
}
printf("%s\n",a);
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/234395.html
標籤:C語言
上一篇:設計和使用虛函式
下一篇:有人能幫我解讀下這個代碼么?
