오늘 C에서 구조체의 기초를 배웠고이 간단한 코드를 작성했습니다. 아무런 오류없이 컴파일 중입니다. 성공적인 컴파일은 버그없는 소프트웨어를 보장하지 않는다는 것을 알고 있습니다. 실행 중에는 두 개의 구조 변수에 대해서만 입력을 스캔하여 잘못된 표시를 제공합니다. 간단히하기 위해 나는 책 이름을 저장하기 위해 char를 선택했다. 나는 여기서 버그를 알아낼 수 없다. 찾을 수 있니?C 구조체 코드가 컴파일 중이지만 실행 중이 아닙니다.
for (i = 0; i <= 2; i++){
printf("\nEnter name, price and pages ");
scanf("%c %f %i",&b[i].name,&b[i].price, &b[i].pages);
while((ch=getchar())!='\n'); //eat the chars
}
튜토리얼/게시물 :
#include<stdio.h>
int main(void)
{
struct book
{ char name;
float price;
int pages;
};
struct book b[3];
int i;
for (i = 0; i <= 2; i++){
printf("\nEnter name, price and pages ");
scanf("%c %f %i", &b[i].name, &b[i].price, &b[i].pages);
}
for (i = 0; i <= 2; i++)
printf("\n%c %f %i",b[i].name, b[i].price, b[i].pages);
return 0;
}
입력 사항은 무엇입니까? 그리고 당신의 잘못된 결과는 무엇입니까? – texasbruce
컴파일 할 때 오류가 없기 때문에 프로그램이 실제로 원하는 것을 수행 할 수있는 것은 아닙니다. 이것은 보통 a * bug *라고 불립니다. –
@GregHewgill 컴파일이 버그없는 소프트웨어를 보장하지 않는다는 사실을 알고 있습니다. 나는 위에서 언급 한 코드에서 버그를 아는 것에 관심이 있었는데, 이는 그렇게 명백하지 않습니다. 당신이 버그를 볼 수 있다면, 친절하게 그것을 언급 .. – KawaiKx