void fun(char a[])
創(chuàng)新互聯(lián)公司長期為近1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為叢臺(tái)企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站,叢臺(tái)網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
{ int k=0,i,j;
char t;
while(a[k])
k++;//計(jì)算字符串長度
for(i=0;ik;i++)//冒泡排序
for(j=0;jk-1-i;j++)
if(a[j]a[j+1])
{t=a[j];
a[j]=a[j+1];
a[j+1]=t;}
}
你有兩個(gè)錯(cuò)誤,一是C的變量定義必須在所有語句之前,二是字符串不能賦值,必須使用strcpy函數(shù),修改后的程序代碼和運(yùn)行結(jié)果如下:
$ cat a.c
#includestdio.h
#includestring.h
void Solve();
void sort(char *name[], int n);
int main()
{
Solve();
return 0;
}
void Solve()
{
int i,n;
char name[100][100];
scanf("%d",n);
for(i=0;in;i++)
{
gets(name[i]);
}
sort(name,n);
for(i=0;in;i++)
{
puts(name[i]);
}
}
void sort(char *name[100], int n)
{
int i,j,k;
char *temp;
for(i=0;in-1;i++)
{
k=i;
for(j=i+1;jn;j++) if(strcmp(name[k],name[j])0) k=j;
if (k!=i)
{
{
strcpy(temp,name[i]);
strcpy(name[i],name[k]);
strcpy(name[k],temp);
}
}
}
}
$ cc a.c
"a.c", line 19: warning #2167-D: argument of type "char (*)[100]" is
incompatible with parameter of type "char **"
sort(name,n);
^
$ a.out
6dkjlfhgjkshdfjkgh
1kdfghj
3dkjfhghd
2dlkfjgklj
5ldfkhlkj
4dflkghklj
1kdfghj
3dkjfhghd
2dlkfjgklj
5ldfkhlkj
4dflkghklj
$ cc -V
cc: HP C/aC++ B3910B A.06.25 [Nov 30 2009]
/cq/u/cqjsdba/ygb
#include stdio.h
#includestdlib.h
#includestring.h
int comp(char *a,char *b)
{
while(*a==*b*a*b){a++;b++;}
return (int)*a-(int)*b;
}
int main(void)
{
char s[1000][20];
int i,n;
scanf("%d\n",n);
for(i=0;in;i++)
gets(s[i]);
qsort(s,n,sizeof(s[0]),comp);
printf("\n");
for(i=0;in;i++)
puts(s[i]);
system("pause");
return 0;
}
c語言字符排序:
輸入:abc 輸出:abc acb bac bca cab cba
#includestdio.h
#includestdlib.h
#includestring.h
void mySwap(char *a,char *b)
{
char temp;
temp = *a;
*a = *b;
*b = temp;
}
void PaiLie(char *list,int begin,int end)
{
int i;
if(list == NULL)
return;
if(begin == end)
{
printf("%s ",list);
printf("\n");
}else{
for(i = begin ; i=end ;i++)
{
mySwap(list[i],list[begin]);
PaiLie(list,begin+1,end);
mySwap(list[i],list[begin]);
}
}
}
void main()
{
char list[] = "abc";
char out [4];
PaiLie(list,0,2);
//ZuHe(list,out,3,0,0);
}
如果有重復(fù),去掉重復(fù)的,然后滿足一些特定的要求(如:第3個(gè)位置不可以是4,3和5不可以相鄰)
Java實(shí)現(xiàn)。
此方法需要輸入數(shù)字從小到大排列,若不是只需在排列之前預(yù)處理一下即可。
關(guān)鍵是compareTo方法
[java] view plain copy
package dataStruct;
import java.util.LinkedList;
import java.util.List;
public class PaiLie {
private static ListString result = new LinkedListString();
private static String lastResult = "";
public static void main(String[] args) {
String s = "1223";
char[] c = s.toCharArray();
paiLie(c, 0, c.length - 1);
for (int i = 0; i result.size(); i++)
System.out.println(result.get(i));
}
public static boolean validator(String s) {
if (s.compareTo(lastResult) = 0) //去重復(fù)的關(guān)鍵
return false;
if (s.charAt(2) == '4')
return false;
if (s.indexOf("35") = 0)
return false;
if (s.indexOf("53") = 0)
return false;
return true;
}
public static void paiLie(char[] c, int begin, int end) {
if (begin == end) {
String s = new String(c);
if (validator(s)) {
lastResult = s;
result.add(s);
}
}
for (int i = begin; i = end; i++) {
swap(c, begin, i);
paiLie(c, begin + 1, end);
swap(c, begin, i);
}
}
public static void swap(char[] c, int i, int j) {
char temp;
temp = c[i];
c[i] = c[j];
c[j] = temp;
}
}
網(wǎng)站題目:c語言字符排序函數(shù) c++語言字符串排序方法
分享地址:http://chinadenli.net/article28/doddijp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站排名、App設(shè)計(jì)、云服務(wù)器、虛擬主機(jī)、域名注冊(cè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)