fork download
  1. #include<stdio.h>
  2.  
  3.  
  4. void shuffle(int *deck[]);//提前宣告
  5. void print (int *deck[]);//提前宣告
  6.  
  7. int main()
  8. {
  9. int card[100];
  10. int *deck[100];
  11. int i = 0;
  12.  
  13. // while ( scanf("%d",&(card[i])) != EOF )
  14. // {
  15. // deck[i] = &(card[i]);//將card[i]的位址 指定給deck[i]
  16. // i++;
  17. // }
  18.  
  19. for (int i=0;i<5;i++)
  20. {
  21. scanf("%d",&(card[i]));
  22. deck[i] = &(card[i]);
  23. }
  24.  
  25. deck[i] = NULL; //把deck不要的空間清除
  26.  
  27. shuffle(deck);
  28. print (deck);
  29. return 0;
  30. }
  31.  
  32.  
  33. //將deck之指標 改變其指向數字
  34. void shuffle(int *deck[])
  35. {
  36. int num=0;
  37. int i =0;
  38. while (deck[i]) //若不為0-->計數
  39. {
  40. num++;
  41. }
  42. int A[50]={0};
  43. int B[50]={0};
  44. //奇數個數
  45. if (num%2==1)
  46. {
  47. for (int i=0;i<num/2;i++) //ex:num=9-->9%2=4 012345678
  48. {
  49. A[i] =*deck[i]; //0~4
  50. B[num-i]=*deck[num-i]; //9~4
  51. }
  52. A[num/2]=*deck[num/2];//5
  53.  
  54. for (int i=0;i<num/2;i++) //ex:num=9-->9%2=4 012345678
  55. {
  56. *deck[2*i] =A[i]; //0 2 4 6
  57. *deck[2*i+1]=B[i]; // 1 3 5 8
  58. }
  59. *deck[num]=A[num/2];
  60. }
  61. }
  62. //將deck之指標 指向數字print出
  63. void print (int *deck[])
  64. {
  65. // int num= sizeof(deck)/sizeof(deck[0]);
  66. int num=0;
  67. while (deck[num]==NULL)
  68. {
  69. num++;
  70. }
  71.  
  72. for (int i=0;i<num;i++)
  73. {
  74. printf("%d" , *deck[i]);
  75. }
  76. }
  77.  
Runtime error #stdin #stdout 0s 10304KB
stdin
1 2 3 4 5
stdout
Standard output is empty