fork download
  1. #include <stdio.h>
  2.  
  3. int main(void)
  4. {
  5. int i, j;
  6. long dec; /* ให้รับค่าอินพุทแบบ Long Integer - เลขจำนวนเต็มแบบยาว */
  7. int bit[32]; /* จองพื้นที่ในการเก็บข้อมูลเลขฐาน 2 ลงใน Array */
  8.  
  9. clrscr(); /* เคลียร์หน้าจอ */
  10. printf("Decimal Number : "); /* แจ้งผู้ใช้เพื่อเตรียมป้อนค่าเลขฐาน 10 */
  11. scanf("%ld", &dec); /* ต้องใช้ ld เพราะ Input มันเป็นแบบ Long Integer */
  12. i = 0; /* กำหนดค่าเริ่มต้นของ Array */
  13. /* ทำตามที่ได้ออกแบบโปรแกรมเอาไว้ ... ยังไงยังงั้นเลย 55555+ */
  14. do {
  15. bit[i++] = dec % 2; /* การหารเอาเศษ เพื่อให้เป็นคำตอบ */
  16.  
  17. /* การหารทั่วไป แต่ตัวแปร dec ของภาษา C มันเป็น Integer หรือ เลขจำนวนเต็ม */
  18. /* ดังนั้นมันจึงตัดเศษ (หรือทศนิยม) ทิ้งไปโดยอัตโนมัติ */
  19. dec = dec / 2;
  20.  
  21. } while (dec > 0); /* เงื่อนไขที่ทำจนกระทั่ง dec = 0 ก็ออกจากวังวนเงื่อนไข */
  22.  
  23. /* การแสดงผลของการแปลงเลขฐาน 10 เป็นเลขฐาน 2*/
  24. /* j = i - 1 และให้ j ลดค่าลงทีละ 1 ... ก็คืออ่านข้อมูลถอยหลังกลับเท่านั้นเองครับ */
  25. /* เพราะตัวแปรแบบ Array ในภาษา C มันเก็บข้อมูลจากซ้ายไปขวา */
  26. /* ทำให้ LSB มันไปอยู่ทางซ้าย ส่วน MSB มันไปอยู่ทางขวา */
  27. for(j = i - 1; j >= 0; j--)
  28. printf("%d", bit[j]);
  29.  
  30. printf("\n");
  31. return 0;
  32.  
  33. }
Success #stdin #stdout 0.02s 25456KB
stdin
#include <stdio.h>

#define NUM_STUDENTS 5

int main() {
    char student_id[NUM_STUDENTS][20];
    int scores[NUM_STUDENTS];
    char grades[NUM_STUDENTS];
    int score_ranges[5] = {0};
    float total_score = 0.0;

    for (int i = 0; i < NUM_STUDENTS; i++) {
        printf("Enter student %d ID: ", i + 1);
        scanf("%s", student_id[i]);

        printf("Enter student %d Score: ", i + 1);
        scanf("%d", &scores[i]);

        if (scores[i] >= 0 && scores[i] <= 49) {
            grades[i] = 'F';
            score_ranges[0]++;
        } else if (scores[i] >= 50 && scores[i] <= 59) {
            grades[i] = 'D';
            score_ranges[1]++;
        } else if (scores[i] >= 60 && scores[i] <= 69) {
            grades[i] = 'C';
            score_ranges[2]++;
        } else if (scores[i] >= 70 && scores[i] <= 79) {
            grades[i] = 'B';
            score_ranges[3]++;
        } else if (scores[i] >= 80 && scores[i] <= 100) {
            grades[i] = 'A';
            score_ranges[4]++;
        } else {
            printf("Invalid score, please enter a number between 0-100\n");
            i--;
            continue;
        }

        total_score += scores[i];
    }

    printf("\nResults:\n");
    for (int i = 0; i < NUM_STUDENTS; i++) {
        printf("ID: %s Score: %d Grade: %c\n", student_id[i], scores[i], grades[i]);
    }

    printf("\nScore Distribution:\n");
    printf("0-49   : %d\n", score_ranges[0]);
    printf("50-59  : %d\n", score_ranges[1]);
    printf("60-69  : %d\n", score_ranges[2]);
    printf("70-79  : %d\n", score_ranges[3]);
    printf("80-100 : %d\n", score_ranges[4]);

    printf("\nAverage Score: %.2f\n", total_score / NUM_STUDENTS);

    return 0;
}
stdout
#include <stdio.h>

int main(void)
{
int i, j;
long dec;  /* ให้รับค่าอินพุทแบบ Long Integer - เลขจำนวนเต็มแบบยาว */
int bit[32];  /* จองพื้นที่ในการเก็บข้อมูลเลขฐาน 2 ลงใน Array */

    clrscr();  /* เคลียร์หน้าจอ */
    printf("Decimal Number : ");  /* แจ้งผู้ใช้เพื่อเตรียมป้อนค่าเลขฐาน 10 */
    scanf("%ld", &dec);  /* ต้องใช้ ld เพราะ Input มันเป็นแบบ Long Integer */
    i = 0;  /* กำหนดค่าเริ่มต้นของ Array */
    /* ทำตามที่ได้ออกแบบโปรแกรมเอาไว้ ... ยังไงยังงั้นเลย 55555+ */
    do {
        bit[i++] = dec % 2;  /* การหารเอาเศษ เพื่อให้เป็นคำตอบ */

        /* การหารทั่วไป แต่ตัวแปร dec ของภาษา C มันเป็น Integer หรือ เลขจำนวนเต็ม */
        /* ดังนั้นมันจึงตัดเศษ (หรือทศนิยม) ทิ้งไปโดยอัตโนมัติ */
        dec = dec / 2;

    } while (dec > 0);  /* เงื่อนไขที่ทำจนกระทั่ง dec = 0 ก็ออกจากวังวนเงื่อนไข */

    /* การแสดงผลของการแปลงเลขฐาน 10 เป็นเลขฐาน 2*/
    /* j = i - 1 และให้ j ลดค่าลงทีละ 1 ... ก็คืออ่านข้อมูลถอยหลังกลับเท่านั้นเองครับ */
    /* เพราะตัวแปรแบบ Array ในภาษา C มันเก็บข้อมูลจากซ้ายไปขวา */
    /* ทำให้ LSB มันไปอยู่ทางซ้าย ส่วน MSB มันไปอยู่ทางขวา */
    for(j = i - 1; j >= 0; j--)
        printf("%d", bit[j]);

printf("\n");
return 0;

}