我是 C 編程的新手,我很困惑為什么我的代碼不起作用。所以我有這樣的情況,每次 IF 陳述句的值為真時,它會為變數添加 1 個值,如果也為假,它會添加值。
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.
我該如何解決這個問題?如果我的問題不是太詳細,我之前很抱歉,因為我不是英語母語,而且很難描述這個問題。所以我只是舉個例子。
uj5u.com熱心網友回復:
我更正了那個代碼。按主所愿作業。所有錯誤都標有注釋。無論如何,我建議為您的編譯器使用-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
);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/436056.html