ฉันใหม่ในการเขียนโปรแกรม C ดังนั้นฉันจึงต้องการสร้างโปรแกรมที่เมื่อใดก็ตามที่ผู้ใช้ป้อน "111" จะแสดงตัวแปร 'รวม' และเมื่อใดก็ตามที่ผู้ใช้ป้อน "999" อินพุต/สแกนจะหยุด ฉันประสบความสำเร็จในการแก้ปัญหานี้ แต่ไม่มีอาร์เรย์ ตอนนี้ฉันต้องการแก้ปัญหาด้วยอาร์เรย์ แต่ฉันคิดไม่ออก (ละเว้นตัวแปรที่ไม่ได้ใช้บางส่วนเพราะฉันกำลังฝึกหัดในเรื่องนี้)

 int i,j,k,o,n,nilai[100],nilaimnilai2,total=0;
    char nama[100][100],nim[100][100],nimif[100][2]={"111","999"},nim1[100],nim2[100];
    float rata2;
    printf("Berapa banyak data mahasiswa yang ingin diinput?: ");
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        printf("\nMahasiswa ke-%d\n",i);
        fflush(stdin);
        printf("Masukkan nama  : ");
        scanf("%[^\n]",&nama[i]);
        fflush(stdin);
        printf("Masukkan NIM   : ");
        scanf("%[^\n]",&nim[i]);
        fflush(stdin);
        printf("Masukkan Nilai : ");
        scanf("%d",&nilai[i]);
        fflush(stdin);
        printf("\n");
        o=strcmp(nim[1],"111");
        k=strcmp(nim[2],"999");

        if(o==0)
        {
            total+=nilai[i];
            printf("Total nilai : %d\n",total);
            printf("Berikut adalah data nilai dari %d mahasiswa:\n",j);
        }
        else if(k==0);
        {
            //fclose(stdin);
            //total+=nilai[i];
            printf("salah");
        }
    }

ปัญหาที่ฉันเผชิญคือวิธีใช้ strcmp กับสตริงอาร์เรย์? นี่คือตัวอย่างถ้าฉันรันโปรแกรม:

Berapa banyak data mahasiswa yang ingin diinput?: 2

Mahasiswa ke-1
Masukkan nama  : test a
Masukkan NIM   : 89
Masukkan Nilai : 98

salah
Mahasiswa ke-2
Masukkan nama  : test b
Masukkan NIM   : 111
Masukkan Nilai : 90

salah

มันให้ผลลัพธ์ที่ผิดมากและไม่คาดคิด ความรู้เกี่ยวกับอาร์เรย์ของฉันสั้นมาก แต่ฉันต้องการคิดออก

เอาต์พุตที่ถูกต้องและคาดหวังสำหรับอินพุต "111":

Berapa banyak data mahasiswa yang ingin diinput?: 2

Mahasiswa ke-1
Masukkan nama  : test a
Masukkan NIM   : 89
Masukkan Nilai : 98

Mahasiswa ke-2
Masukkan nama  : test b
Masukkan NIM   : 111
Masukkan Nilai : 90

Total nilai : 179
Berikut adalah data nilai dari 2 mahasiswa: 

เอาต์พุตที่ถูกต้องและคาดหวังสำหรับอินพุต "999":

Berapa banyak data mahasiswa yang ingin diinput?: 2

Mahasiswa ke-1
Masukkan nama  : test a
Masukkan NIM   : 999
Masukkan Nilai : 98

salah
(scan stop and exit)
Process returned 0 (0x0)   execution time : 16.813 s
Press any key to continue.

ฉันจะแก้ปัญหานี้ได้อย่างไร ฉันขอโทษถ้าคำถามของฉันไม่ละเอียดเกินไป เพราะฉันมีปัญหาในการอธิบายปัญหา ดังนั้นฉันแค่ยกตัวอย่าง

ไม่พบคำตอบ