如何在 C 中的 if for 循环条件中将值添加到变量中
How to add value into variable in if for loop condition in C
我是 C 编程的新手,我很困惑为什么我的代码无法运行。所以我有这样的情况,每次 IF 语句中的值为 true 时,它都会为变量添加 1 个值,如果也是 false,它也会添加值。
int i,n,nilai,kelulusan,lulus,tidaklulus;
printf("Berapa banyak nilai yang ingin dimasukkan?: ");
scanf("%d",&n);
for (i=1;i<=n;i++)
{
printf("Masukkan nilai: ");
scanf("%d",&nilai);
if(nilai>=60)
{
printf("Nilai ini lulus\n");
lulus++;
printf("\n");
}
else
{
printf("Nilai ini tidak lulus\n");
tidaklulus++;
printf("\n");
}
}
printf("Dari %d nilai, ada %d yang lulus, dan %d yang tidak lulus.",n,kelulusan,tidaklulus);
输入将是这样的,例如:
Berapa banyak nilai yang ingin dimasukkan?: 3
Masukkan nilai: 2
Nilai ini tidak lulus
Masukkan nilai: 2
Nilai ini tidak lulus
Masukkan nilai: 60
Nilai ini lulus
Dari 3 nilai, ada 10425344 yang lulus, dan 2 yang tidak lulus.
我得到错误的输出
Dari 3 nilai, ada **10425344** yang lulus, dan 2 yang tidak lulus.
正确的输出应该是这样的
Dari 3 nilai, ada 1 yang lulus, dan 2 yang tidak lulus.
我该如何解决这个问题?
我更正了那个代码。按照主的意愿行事。所有错误都标有注释。
无论如何,我建议为您的编译器使用 -Wall 标志。它将打开所有警告。
#include <stdio.h>
int main()
{
int i; //"Initialized" by for(...) loop
int n,nilai; //"Initialized" by scanf
int lulus=0,tidaklulus=0; //Definitly need initialization
//You define `kelulusan` and than print it with out using it storage potential?
/*Use
#define kelulusan ⟦any value⟧
if you need a compile-time constant*/
printf("Berapa banyak nilai yang ingin dimasukkan?: ");
scanf("%d",&n);
for (i=1;i<=n;i++)
{
printf("Masukkan nilai: ");
scanf("%d",&nilai);
if(nilai>=60)
{
printf("Nilai ini lulus\n");
lulus++;
printf("\n");
}
else
{
printf("Nilai ini tidak lulus\n");
tidaklulus++;
printf("\n");
}
}
//Asumed that `kelulusan` was in place of `lulus` and corrected that.
printf("Dari %d nilai, ada %d yang lulus,"
"dan %d yang tidak lulus.",n, lulus,tidaklulus
);
}
我是 C 编程的新手,我很困惑为什么我的代码无法运行。所以我有这样的情况,每次 IF 语句中的值为 true 时,它都会为变量添加 1 个值,如果也是 false,它也会添加值。
int i,n,nilai,kelulusan,lulus,tidaklulus;
printf("Berapa banyak nilai yang ingin dimasukkan?: ");
scanf("%d",&n);
for (i=1;i<=n;i++)
{
printf("Masukkan nilai: ");
scanf("%d",&nilai);
if(nilai>=60)
{
printf("Nilai ini lulus\n");
lulus++;
printf("\n");
}
else
{
printf("Nilai ini tidak lulus\n");
tidaklulus++;
printf("\n");
}
}
printf("Dari %d nilai, ada %d yang lulus, dan %d yang tidak lulus.",n,kelulusan,tidaklulus);
输入将是这样的,例如:
Berapa banyak nilai yang ingin dimasukkan?: 3
Masukkan nilai: 2
Nilai ini tidak lulus
Masukkan nilai: 2
Nilai ini tidak lulus
Masukkan nilai: 60
Nilai ini lulus
Dari 3 nilai, ada 10425344 yang lulus, dan 2 yang tidak lulus.
我得到错误的输出
Dari 3 nilai, ada **10425344** yang lulus, dan 2 yang tidak lulus.
正确的输出应该是这样的
Dari 3 nilai, ada 1 yang lulus, dan 2 yang tidak lulus.
我该如何解决这个问题?
我更正了那个代码。按照主的意愿行事。所有错误都标有注释。 无论如何,我建议为您的编译器使用 -Wall 标志。它将打开所有警告。
#include <stdio.h>
int main()
{
int i; //"Initialized" by for(...) loop
int n,nilai; //"Initialized" by scanf
int lulus=0,tidaklulus=0; //Definitly need initialization
//You define `kelulusan` and than print it with out using it storage potential?
/*Use
#define kelulusan ⟦any value⟧
if you need a compile-time constant*/
printf("Berapa banyak nilai yang ingin dimasukkan?: ");
scanf("%d",&n);
for (i=1;i<=n;i++)
{
printf("Masukkan nilai: ");
scanf("%d",&nilai);
if(nilai>=60)
{
printf("Nilai ini lulus\n");
lulus++;
printf("\n");
}
else
{
printf("Nilai ini tidak lulus\n");
tidaklulus++;
printf("\n");
}
}
//Asumed that `kelulusan` was in place of `lulus` and corrected that.
printf("Dari %d nilai, ada %d yang lulus,"
"dan %d yang tidak lulus.",n, lulus,tidaklulus
);
}