2017年6月26日 星期一

排序

以陣列方式 出現則標記

#include <stdio.h>
#include <stdlib.h>

int main()
{   int t,n,j,i;
    int a[100];
    for(i=1;i<=100;i++)
    {a[i]=0;}

    scanf("%d",&n);
    for(j=1;j<=n;j++)
    { scanf("%d",&t);
      a[t]=1;
    }
    printf("\n");
    for(i=1;i<=100;i++)
    {if(a[i]==1)
     printf("%d\n",i);
    }

    return 0;

}



====================另一種方法=================
first step

#include <stdio.h>
#include <stdlib.h>

int main()
{   int t,i,j,a[100];
    printf("請輸入要幾個數字(最多100個) ");
    scanf("%d",&t);
    for(i=1;i<=t;i++)
    {scanf("%d",&a[i]);}
    printf("輸入的數字是\n");
    for(i=1;i<=t;i++)
    {printf("%d\n",a[i]);}

    return 0;
}


the second step

#include <stdio.h>
#include <stdlib.h>

int main()
{   int t,i,j,a[100],r;
    printf("請輸入要幾個數字(最多100個) ");
    scanf("%d",&t);
    for(i=1;i<=t;i++)
    {scanf("%d",&a[i]);}

    printf("輸入的數字是\n");

    for(i=1;i<=t;i++)
    {printf("%d\n",a[i]);}

    for(i=1;i<=t-1;i++)
     {for(j=1;j<=t-1;j++)
       {if(a[j]<a[j+1])
        {r=a[j];a[j]=a[j+1];a[j+1]=r; }
       }
     }
      printf("由大至小的數字是\n");
    for(i=1;i<=t;i++)
    {printf("%d\n",a[i]);}
    return 0;
}

沒有留言:

張貼留言