如何在 C 中使用 IF 对数组进行 strcmp?
我是 C 编程新手。所以我想构建一个程序,只要用户输入“111”,就会显示“total”变量,只要用户输入“999”,输入/scanf就会停止。我已经成功解决了这个问题,但没有数组。现在我想用数组解决它,但我不知道如何解决。 (忽略一些未使用的变量,导致对此进行练习)。
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.
我该如何解决这个问题?如果我的问题不太详细,我很抱歉,因为我很难解释这个问题,所以我只是举一个例子。
Im new into C programming. So i want to build a program that whenever if the user give input "111" will display the 'total' variable and whenever if the user give input "999" the input/scanf will be stopped. I have succeed to solve this problem but without array. Now i want to solve it with array but i can't figure it how. (Ignore some unused variable cause im praticing on this).
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");
}
}
The problem that i faced is how to use strcmp with string array?
Here is the example if i run the program:
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
It gives me very wrong output and unexpected. My knowledge for array is very short, but i want to figure it out.
The right and expected output for "111" input:
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:
The right and expected output for "999" input:
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.
How do i solve this? Im sorry if my question not too much detailed, because im having some difficulties to explain the problem, so i just give an example.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论