gpt4 book ai didi

c - 我如何更正这个程序(结构和指针(?))?

转载 作者:行者123 更新时间:2023-11-30 15:29:29 25 4
gpt4 key购买 nike

你能帮我解决这个代码吗?

#include<stdio.h>
#include<string.h>

int main(){
typedef struct{
char NIM[11];
char Nama[20];
int mid;
int final;
int tugas;
int absen;
float nilaiakhir;
}data;
data datamahasiswa[10];
int i;
for (i=0;i<=1;i++){
printf("Data Mahasiswa ke-%d\n",i);

printf ("NIM :");
scanf ("%s",&datamahasiswa[i].NIM);

printf ("Nama :");
scanf ("%s",&datamahasiswa[i].Nama);

printf("Nilai Mid =");
scanf("%d",&datamahasiswa[i].mid);

printf("Nilai Final =");
scanf("%d",&datamahasiswa[i].final);

printf("Nilai Tugas =");
scanf("%d",&datamahasiswa[i].tugas);

printf("Jumlah absen =");
scanf("%d",&datamahasiswa[i].absen);

datamahasiswa[i].nilaiakhir=((10/100)*datamahasiswa[i].absen)+((25/100)*datamahasiswa[i].mid)+((35/100)*datamahasiswa[i].final)+((30/100)*datamahasiswa[i].tugas);
}
for (i=0;i<=1;i++){
printf("Data Mahasiswa ke-%d\n",i);
printf ("NIM : %s\n",datamahasiswa[i].NIM);
printf ("Nama : %s\n",datamahasiswa[i].Nama);
printf("Nilai Mid = %d\n",datamahasiswa[i].mid);
printf("Nilai Final = %d\n",datamahasiswa[i].final);
printf("Nilai Tugas = %d\n",datamahasiswa[i].tugas);
printf("Jumlah absen = %d\n",datamahasiswa[i].absen);
printf("Nilai Akhir = %f\n",datamahasiswa[i].nilaiakhir);
}
return 0;
}

我已经尝试过这个程序,最后它仍然在 datamahasiswa[i].nilaiakhir 上返回 0,不知怎的,我认为我必须使用指针,但我真的不知道如何使用带有结构的指针来使这个程序正确,有人可以帮忙吗?

最佳答案

两个主要问题:

  • scanf ("%s",&datamahasiswa[i].NIM);scanf ("%s",&datamahasiswa[i].Nama);:NIMNama成员是数组,这意味着它们已经是指向其存储位置的指针,因此需要删除地址运算符& 将它们传递给 scanf() (即 scanf ("%s",datamahasiswa[i].NIM);scanf ("%s",datamahasiswa[i].Nama))。

  • 当您需要除法运算符 / 的小数结果时,至少有一个操作数必须是浮点类型。使用类似 (double) 10/10010 的内容。/100。(注意小数点)。

关于c - 我如何更正这个程序(结构和指针(?))?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26247779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com