gpt4 book ai didi

c - 结构问题

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

typedef struct{
char noreg[11];
float IPK;
}Mahasiswa;

void showDataArr(Mahasiswa *A, int ukuran){
int i;
for(i=0;i<ukuran;i++){
printf("Mhs ke %d\n",i+1);
printf("\tNoreg : %s\n",A[i].noreg);
printf("\tIPK : %.2f\n",A[i].IPK);
}
}

void isiDataArr(Mahasiswa *A, int ukuran ){
int i;
char temp[20];
for(i=0;i<ukuran;i++){
printf("Masukan Noreg : ");
scanf ("%[^\n]",A[i].noreg);
printf("Masukan IPK : ");scanf("%f",&A[i].IPK);
getchar();
}
}

int n;
main(){

Mahasiswa PTIK[n];

printf("masukan jumlah data :");
scanf("%d",&n); //this part
isiDataArr(PTIK,n);
printf("\n");
showDataArr(PTIK,n);
getch();
}

您好,我那里有该代码,我的问题是当我运行它时,scanf 将使程序绕过第一个数组输入,“masukan no reg”将留空 like this但是其余数组会正常运行

最佳答案

如果我稍微改变一下你的程序,它就会做我认为你想要的事情:

#include<stdio.h>

typedef struct {
char noreg[11];
float IPK;
} Mahasiswa;

void showDataArr(Mahasiswa *A, int ukuran) {
int i;
for (i = 0; i < ukuran; i++) {
printf("Mhs ke %d\n", i + 1);
printf("\tNoreg : %s\n", A[i].noreg);
printf("\tIPK : %.2f\n", A[i].IPK);
}
}

void isiDataArr(Mahasiswa *A, int ukuran) {
int i;
char temp[20];
for (i = 0; i < ukuran; i++) {
printf("Masukan Noreg : ");
scanf("%s", A[i].noreg);
getchar();
printf("Masukan IPK : ");
scanf("%f", &A[i].IPK);
getchar();
}
}

int n;

int main(void) {
printf("masukan jumlah data :");
scanf("%d", &n); //this part
Mahasiswa PTIK[n];
isiDataArr(PTIK, n);
printf("\n");
showDataArr(PTIK, n);
//getch();
}

测试

masukan jumlah data :2
Masukan Noreg : 123qwe
Masukan IPK : 123
Masukan Noreg : 234wer
Masukan IPK : 234

Mhs ke 1
Noreg : 123qwe
IPK : 123.00
Mhs ke 2
Noreg : 234wer
IPK : 234.00

关于c - 结构问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37646692/

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