簡體   English   中英

有沒有辦法用C語言比較沒有數組的9個整數?

[英]Is there any way to compare nine integers without array in C language?

最近,我必須做一個編程項目,這是一個課程注冊系統。 指令之一是按升序對這9門課程的代碼進行編碼。 我已經將那些課程代碼設置為整數,但是如果不使用數組,我不知道如何制作它。有人可以教我嗎? 非常感謝! 我采用的變量名稱是code1,code2,code3,code4,code5,code6,code7,code8,code9 ...

代碼按升序排列。
但我不知道如何不使用數組

不使用數組不是一個好主意,但可能對學習有好處。

以某種方式將問題分解為較小部分的關鍵思想。

下面使用遞歸解決方案,它可能會導致n*n的遞歸深度-並不是那么大。 讓OP考慮一種更有效的方法並將其擴展到9個變量。

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

void swap(int *v1, int *v2) {
  int t = *v1;
  *v1 = *v2;
  *v2 = t;
}

void sort4(int *v1, int *v2, int *v3, int *v4) {
  if (*v1 > *v2) swap(v1,v2);
  else if (*v2 > *v3) swap(v2,v3);
  else if (*v3 > *v4) swap(v3,v4);
  else return;
  sort4(v1,v2,v3,v4);
  return;
}

int main(void) {
  for (int i=0; i< 10; i++) {
    int code1,code2,code3,code4;
    code1 = rand()%1000;
    code2 = rand()%1000;
    code3 = rand()%1000;
    code4 = rand()%1000;
    sort4(&code1, &code2, &code3, &code4);
    printf("%3d %3d %3d %3d\n", code1, code2, code3, code4);
  }
}

輸出量

262 529 743 933
256 508 700 752
119 256 351 711
108 393 705 843
169 330 366 932
847 868 917 972
223 549 592 980
164 169 427 551
190 624 635 920
310 484 862 944

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM