之前寫博客發(fā)現(xiàn)網(wǎng)頁打不開,不知是什么原因,
今天試了一下 終于打開了 之前也一直應(yīng)付考試 沒時間寫代碼 還要學(xué)習(xí)匯編語言 先來一小段開個頭吧:
# include <stdio.h>
/*查昊昊:輸入字符個數(shù) 然后輸入字符串 對字符串進行升序或降序排列*/# define N 101 //如果想錄入x個字節(jié)那么就把N的數(shù)值改成x+1int gainint(int *p,int a,int b);//返回數(shù)字的位數(shù)int gainchar(char *a,int min,int max);//返回字符長度void paixu(char a[],int n,int b);void main(){ int n,c,i,d; char B[N],S[][3]={"升","降"};do{PRintf("請輸入字符串長度(2--%d):",N-1);gainint(&n,2,N-1);printf("輸入字符串:/n");c=gainchar(B,n,n+1);printf("原字符串:/n%s/n",B);for(i=0;i<2;i++){printf("%s序:/n",S[i]); paixu(B,c,i);printf("%s/n",B);}}while(1);}int gainint(int *p,int a,int b)//p相當(dāng)于地址,在主函數(shù)中傳入&a,就是把a的地址傳到函數(shù)里,那么在函數(shù)里就可以改變a的值了{int c[2]={0,1};do{scanf("%d",p);while(getchar()!='/n'); if(*p>b||*p<a)printf("輸入有誤,請重新輸入(%d--%d):",a,b);}while(*p>b||*p<a); return *p;}int gainchar(char *a,int min,int max)//對*a輸入范圍(min,max),如果字符數(shù)組中存在'/n',將其改為'/0'{int c=-1;do{fgets(a,max,stdin);while(a[++c]);c=a[c-1]=='/n'&&c<max?c-1:c;if(c>=max-1)while(getchar()!='/n');elsea[c]='/0';if(c&&(c>max||c<min))//如果用戶只輸入'/n'則不提示輸入錯誤,否則提示錯誤printf("輸入有誤,請重新輸入只錄入(%d--%d)字節(jié):/n",min,max-1);}while(c>max||c<min); return c;}void paixu(char a[],int n,int b){ int i,j,k,temp;for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++)if(b?a[j]>a[k]:a[j]<a[k]) //b=0升序 b為其他降序k=j;if(k!=i){temp=a[k];a[k]=a[i];a[i]=temp;}}}
|
新聞熱點
疑難解答