老师给了我一个代码,我尝试在Visual Basic 2019上运行它,但在0x7C43F338(ucrtbased.dll)上抛出异常。 我只是被介绍给c的人,不知道怎么了
这是我的代码:
#include <cstdio>
#include <malloc.h>
#include <string.h>
//percobaan 1 dan 3
int main(){
printf("percobaan 1 dan 3\n");
struct dtnilai
{
char nrp[10];
char nama[20];
double nilai;
struct dtnilai* next;
};
struct dtnilai* ujung;
void sisip_awal_LIFO();
{
struct dtnilai* tampung = 0;
int j = 0; char jawab[2];
while (1)
{
ujung = (struct dtnilai*)malloc(sizeof(struct dtnilai));
fflush(stdin);
printf("NRP :"); scanf("%s", &ujung->nrp);
printf("Nama :"); scanf("%s", &ujung->nama);
printf("Nilai Test :"); scanf("%lf", &ujung->nilai);
if (j == 0)
{
ujung->next = NULL;
tampung = ujung;
}
else
{
ujung->next = tampung;
tampung = ujung;
}
printf("Ada data lagi(y/t):"); scanf("%s", &jawab);
if ((strcmp(jawab, "Y") == 0) || (strcmp(jawab, "y") == 0))
{
j++; continue;
}
else if ((strcmp(jawab, "T") == 0) || (strcmp(jawab, "t") == 0))
break;
}
}
void tampil_list();
{
struct dtnilai* tampil;
printf("Data Mahasiswa yang telah diinputkan :\n");
printf("NRP\tNama\tNilai\n");
tampil = ujung;
while (tampil != NULL)
{
printf("%s\t%s\t%6.2f\n", tampil->nrp, tampil->nama,
tampil->nilai);
tampil = tampil->next;
}
}
void sisip_stl_simpul();
{
struct dtnilai* sisip; struct dtnilai* stl;
char cari[20];
char nrp[10];
char nama[20];
double nilai;
struct dtnilai* next;
if (ujung == NULL)
printf("List Belum Terbentuk. Buatlah Dulu!");
else
{
ujung = (struct dtnilai*)malloc(sizeof(struct dtnilai));
sisip = (struct dtnilai*)malloc(sizeof(struct dtnilai));
printf("Masukkan Data Yang Akan Disisipkan \n");
printf("NRP :\n"); gets_s(sisip->nrp); //<- cant input
printf("Nama :\n"); gets_s(sisip->nama);
printf("Nilai Test :\n"); (sisip->nilai); //<-cant input
printf("Data disisipkan setelah data ? (nama) : ");
gets_s(cari);
//gets_s(cari);
stl = ujung;
while(strcmp(stl->nama, cari) != 0) //<- error
{
stl = stl->next;
}
sisip->next = stl->next;
stl->next = sisip;
}
}
void tampil_list();
{
struct dtnilai* tampil;
printf("Data Mahasiswa yang telah diinputkan :\n");
printf("NRP\tNama\tNilai\n");
tampil = ujung;
while (tampil != NULL)
{
printf("%s\t%s\t%6.2f\n", tampil->nrp, tampil->nama,
tampil->nilai);
tampil = tampil->next;
}
}
}
在此行
printf("NRP :\n"); gets_s(sisip->nrp); //<- cant input
printf("Nama :\n"); gets_s(sisip->nama);
printf("Nilai Test :\n"); (sisip->nilai); //<-cant input, also if i put gets_s in here i get error.
printf("Data disisipkan setelah data ? (nama) : ");
gets_s(cari);
最初用于gets_s的是“ gets”,但“ gets”的get标识符未定义,我也尝试使用fgets,scanf,但是它不起作用
对不起,我的英语。