Code lưu đuôi .c không chạy được

Tại sao chạy trên dev c lưu đuôi .c lại không được vậy? mn xem và sửa giúp e đc ko?

#include <stdio.h>
#include <string.h>
struct bookstore{
	char code[7];
	char title[30];
	int quantity;
	double price;
}book[100];
void inputCode(int i){
	printf("Enter code: ");
	fflush(stdin);
	gets(book[i].code);
	for(int j=1;j<i;j++){
		if(strcmp(book[i].code,book[j].code)==0){
			printf("The code %s already exists, please reenter!\n",book[i].code);
			inputCode(i);
		}
	}
}
void inputBook(int &n){
	printf("Enter number of books: ");
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		printf("Book %d:\n",i);
		inputCode(i);
		printf("Enter title: ");
		fflush(stdin);
		gets(book[i].title);
		printf("Enter quantity: ");
		scanf("%d",&book[i].quantity);
		printf("Enter price: ");
		scanf("%lf",&book[i].price);
	}
}
void displayBook(int n){
	double total=0;
	printf("Code	Title	Quantity    Price	Value\n");
	for(int i=1;i<=n;i++){
		printf("%s %9s %9d %9.1lf %10.1lf\n",book[i].code,book[i].title,book[i].quantity,book[i].price,book[i].price*book[i].quantity);
		total+=book[i].quantity*book[i].price;
	}
	printf("\t\t\tTotal value:  %.1lf\n",total);
		
}
void swap(bookstore &a, bookstore &b){
	bookstore temp;
	temp=a;
	a=b;
	b=temp;	
}
void sortBook(int n){
	for(int i=1;i<=n;i++){
		for(int j=n;j>i;j--)
			if(strcmp(book[j].code,book[j-1].code)<0)
				swap(book[j],book[j-1]);
	}
}
int main(){
	int check=-1,n;
	do{
		printf("Select options:");
		printf("\n1. Enter the list of books");
		printf("\n2. Display the list of books");
		printf("\n3. Sort the list of books by code");
		printf("\n0. Exit");
		printf("\nYour selection (0 -> 3): ");
		scanf("%d",&check);
		switch(check){
			case 1: inputBook(n);break;
			case 2: displayBook(n);break;
			case 3: sortBook(n);break;
			case 0: return 0;
		}
	}while(check!=0);
}
2 Likes

bạn đưa thêm thông tin thì mọi người mới biết đường giúp chứ?
Có thấy thông báo lỗi không, đã thử search đâu đó chưa?

  • Compile time error?
  • Runtime error?
2 Likes
Suy đoán

Nhận 1 cái đề, tìm ở đâu đó được 1 bài giải. Nhưng khổ, bài giải viết bằng C++, nhưng đề yêu cầu dùng C.

6 Likes

Mình cũng nghĩ vậy sau khi đọc lại cái Title…Cơ mà mình thấy mã là mã C mà nhỉ …Có phải code C++ đâu nhỉ ?

3 Likes


Chỗ hàm (&n) là code của C++

5 Likes

Có lẽ chủ pic đã sửa lại code sang mã C nhưng vẫn không chạy đc .!
Bạn nào có lòng tốt thì có thể chuyển sang mã C cho bạn ý !

#include <stdio.h>
#include <string.h>
struct bookstore{
	char code[7];
	char title[30];
	int quantity;
	double price;
}book[100];

typedef struct bookstore bookstore;

void inputCode(int i){
	printf("Enter code: ");
	fflush(stdin);
	gets(book[i].code);
	for(int j=1;j<i;j++){
		if(strcmp(book[i].code,book[j].code)==0){
			printf("The code %s already exists, please reenter!\n",book[i].code);
			inputCode(i);
		}
	}
}
void inputBook(int *n){
	printf("Enter number of books: ");
	scanf("%d", n);
	for(int i=1;i<= *n;i++){
		printf("Book %d:\n",i);
		inputCode(i);
		printf("Enter title: ");
		fflush(stdin);
		gets(book[i].title);
		printf("Enter quantity: ");
		scanf("%d",&book[i].quantity);
		printf("Enter price: ");
		scanf("%lf",&book[i].price);
	}
}
void displayBook(int n){
	double total=0;
	printf("Code	Title	Quantity    Price	Value\n");
	for(int i=1;i<=n;i++){
		printf("%s %9s %9d %9.1lf %10.1lf\n",book[i].code,book[i].title,book[i].quantity,book[i].price,book[i].price*book[i].quantity);
		total+=book[i].quantity*book[i].price;
	}
	printf("\t\t\tTotal value:  %.1lf\n",total);
		
}
void swap(bookstore *a, bookstore *b){
	bookstore temp;
	temp= *a;
	*a=*b;
	*b=temp;	
}
void sortBook(int n){
	for(int i=1;i<=n;i++){
		for(int j=n;j>i;j--)
			if(strcmp(book[j].code,book[j-1].code)<0)
				swap(&book[j],&book[j-1]);
	}
}
int main(){
	int check=-1, n;
	do{
		printf("Select options:");
		printf("\n1. Enter the list of books");
		printf("\n2. Display the list of books");
		printf("\n3. Sort the list of books by code");
		printf("\n0. Exit");
		printf("\nYour selection (0 -> 3): ");
		scanf("%d",&check);
		switch(check){
			case 1: inputBook(&n);break;
			case 2: displayBook(n);break;
			case 3: sortBook(n);break;
			case 0: return 0;
		}
	}while(check!=0);
}

bạn than khảo nha!

2 Likes

Bạn có phải lỗi này không:

1 Like

Mình nghĩ lỗi này k liên quan đến lưu file vì code cũ mình biên dịch thử k chạy đc vì lẫn cả code C++…Cơ mà code mới của bạn @Music_of_the_God sau khi chuyển mã lại hoàn toàn thành code C thì run ngon
nên mình đoán như #2

3 Likes

Có truyền tham chiếu trong hàm kìa. Tham chiếu là của c++. Bài này chỉ so sánh bởi mã của sách nên đơn giản

Sort trong c dùng qsort nhanh hơn đó

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?