之前寫博客發現網頁打不開,不知是什么原因,
今天試了一下 終于打開了 之前也一直應付考試 沒時間寫代碼 還要學習匯編語言 先來一小段開個頭吧:
# include <stdio.h>
/*查昊昊:輸入字符個數 然后輸入字符串 對字符串進行升序或降序排列*/# define N 101 //如果想錄入x個字節那么就把N的數值改成x+1int gainint(int *p,int a,int b);//返回數字的位數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相當于地址,在主函數中傳入&a,就是把a的地址傳到函數里,那么在函數里就可以改變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),如果字符數組中存在'/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)字節:/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;}}}
新聞熱點
疑難解答