【发布时间】:2021-12-20 01:00:31
【问题描述】:
我创建了函数 totalLulus(计算从 int kkm 传递的人数)和 nilaiTerbesar(从 nilaiUser 中查找最大数字),但是当我输入的数字小于 56(kkm)时,函数 totalLulus 将发送输出 1 ,但我预计为 0,因为这意味着没有人从 kkm 中通过。
然后当我插入超过 4 个 jumlahSiswa 时,函数 nilaiTerbesar 将发送输出随机数,如 1975579936,这让我一直困惑到现在????,有人能告诉我为什么吗?这是我的代码谢谢
#include <stdio.h>
int nilaiRataRata();
int nilaiTerkecil();
int nilaiTerbesar();
int totalLulus();
int totalTidakLulus();
int main(){
int i;
int jumlahSiswa;
printf("Masukan Jumlah Siswa : "); scanf("%d", &jumlahSiswa);
// Declare Array Size & More
int nilaiUser[jumlahSiswa];
int jumlahNilai = 0;
// Input Nilai
for( i = 1; i <= jumlahSiswa; i++ ){
printf("Masukan Nilai Mahasiswa Ke-%d : ", i); scanf("%d", &nilaiUser[i]);
jumlahNilai += nilaiUser[i];
}
printf("Rata Ratanya adalah : %d\n", nilaiRataRata( jumlahNilai, jumlahSiswa ));
printf("Nilai Terkecil : %d\n", nilaiTerkecil( nilaiUser, jumlahSiswa ));
printf("Nilai Terbesar : %d\n", nilaiTerbesar( nilaiUser, jumlahSiswa ));
printf("Total Tidak Lulus : %d\n", totalTidakLulus( nilaiUser, jumlahSiswa ));
printf("Total Lulus : %d\n", totalLulus( nilaiUser, jumlahSiswa ));
}
// Function Lulus
int totalLulus( int *inputNilai, int inputJumlahSiswa ){
int i;
int kkm = 55;
int totalLulus = 0;
for( i = 0; i <= inputJumlahSiswa; i++ ){
if ( inputNilai[i] > kkm )
{
totalLulus++;
}
}
return totalLulus;
}
// Function Tidak Lulus
int totalTidakLulus( int *inputNilai, int inputJumlahSiswa ){
int i;
int kkm = 56;
int totalTidakLulus = 0;
for( i = 0; i <= inputJumlahSiswa; i++ ){
if ( inputNilai[i] < kkm )
{
totalTidakLulus++;
}
}
return totalTidakLulus;
}
// Function Nilai Rata - Rata
int nilaiRataRata( int inputRataRata , int inputJumlahMahasiswa ){
float hasilRataRata;
hasilRataRata = inputRataRata/inputJumlahMahasiswa;
return hasilRataRata;
}
// Function Nilai Terkecil
int nilaiTerkecil( int *inputNilai, int inputJumlahMahasiswa ){
int i = 0;
int counter = 100;
for( i = 0; i < inputJumlahMahasiswa; i++ ){
if ( inputNilai[i] < counter )
{
counter = inputNilai[i];
}
}
return counter;
}
// Function Nilai Terbesar
int nilaiTerbesar( int *inputNilai, int inputJumlahMahasiswa ){
int i = 0;
int counter = 0;
for( i = 0; i <= inputJumlahMahasiswa; i++ ){
if ( inputNilai[i] > counter )
{
counter = inputNilai[i];
}
}
return counter;
}
我预计: 总卢卢斯 = 2; Nilai Terbesar = 88;
【问题讨论】:
-
注意:C 数组从 0 开始索引。声明 myArray[10] 的数组中的第一个元素是 myArray[0] 并且元素 myArray[10] 不存在,访问它是未定义的行为。跨度>
-
谢谢你帮助我????
-
为什么不提供适当的函数原型?你意识到在调用你的函数之前你需要声明,但你为什么停在参数列表上?
标签: arrays c loops for-loop function-definition