回覆列表
  • 1 # 使用者1544498650998

    #include<stdio.h>

    void main()

    {

    char a[100],b[100];

    //定義兩個字元組,a[100]用來接收輸入的字串,b[100]用來儲存不重複的字元

    int pa=0,pb=0,i,flag;

    scanf("%s",a);

    //輸入字串到a[100]中,用scanf讀入到a[100]中會自動在a[100]中字串結束的地方加上"\0"

    for(pa=0;a[pa]!="\0";pa++)

    //for迴圈結束的條件是a[pa]==0,也就是從a[100]字元組中讀取一個字元,直到沒有

    {

    flag=1;

    //flag是個標誌符,當flag==1時,說明這個字元(下句中的a[pa])是第一次出現,應該加入到b[100]中

    //如果flag==0,說明這個字元(下句中的a[pa])重複了,不應該加到b[100]中

    for(i=0;i<pb;i++) if(b[i]==a[pa]) flag=0;

    //把a[100]中讀取的字元a[pa]與b[100]中的所有字元進行比較,如果b[i]==a[pa]

    //說明這個字元已經在b[100]中了,也就是重複字元了,所有將flag=0,不能加入b[100]中

    //如果a[pa]與b[100]中的所有字元都不相等,說明這個字條是第一次出現,應該加到b[100]

    if(flag)

    {

    b[pb]=a[pa];pb++;

    }

    //如果flag==1,則將a[pa]這個字元加入到b[100]中,然後將pb加1

    }

    b[pb]="\0";

    //當所有的不重複的字元都加入到b[100]中時,將b[100]中字元結束的地方加"\0",也就是b[pb]="\0"

    //因為字串都是民"\0"結尾的,所以加上這句

    printf("%s\n",b);

    }

  • 2 # 鵝卵石俄羅斯

    //刪除字串中重複的字元並排序#define N 6#include<stdio.h>main(){ //定義變數 int i,j,k,n=0; char ch[100],t; //輸入 for(i=0;i<N-1;i++) scanf("%c",&ch[i]); //刪除重複字元 for(i=0;i<N-1-n;i++) { for(j=0;j<i;j++) { if(ch[i]==ch[j]) { for(k=j;k<N-1-n;k++) ch[k]=ch[k+1]; j--; n++; } } } //輸出(無重複字元) k=N-n-1; for(i=0;i<k;i++) printf("%c",ch[i]); printf(" "); //排序(冒泡法) for(i=0;i<k-1;i++) { for(j=0;j<k-1-i;j++) { if(ch[j]>ch[j+1]) { t=ch[j]; ch[j]=ch[j+1]; ch[j+1]=t; } } } //輸出(無重複字元並排序) for(i=0;i<k;i++) printf("%c",ch[i]); printf(" "); //結束 return 0; }

  • 中秋節和大豐收的關聯?
  • 夫妻相差多少歲最好?為何?