69 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#include <stdio.h>
 | 
						|
#include <string.h>
 | 
						|
#include <stdlib.h>
 | 
						|
 | 
						|
 | 
						|
 | 
						|
#define SIZE 100
 | 
						|
#define NAMESIZE 30
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
struct menu {
 | 
						|
	char name[SIZE];
 | 
						|
	float price;
 | 
						|
};
 | 
						|
 | 
						|
int compare_name(const void* c1, const void* c2){
 | 
						|
	struct menu* p1 = (struct menu* ) c1;
 | 
						|
	struct menu* p2 = (struct menu* ) c2;			
 | 
						|
	return strcmp(p1->name,p2->name);
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
int compare_price(const void* c1, const void* c2){
 | 
						|
	struct menu* p1 = (struct menu* ) c1;
 | 
						|
	struct menu* p2 = (struct menu* ) c2;			
 | 
						|
	return p1->price - p2->price;
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
int main(){
 | 
						|
	
 | 
						|
	
 | 
						|
	
 | 
						|
	struct menu food_database[SIZE];
 | 
						|
	memset(food_database, 0, SIZE*sizeof(struct menu));
 | 
						|
 | 
						|
 | 
						|
	
 | 
						|
	// load name into struct
 | 
						|
	int meal_counter = 0;
 | 
						|
	char temp[20];
 | 
						|
	char* ptr1 = NULL;
 | 
						|
	char* ptr2 = NULL;
 | 
						|
	while(1){
 | 
						|
		ptr1 = fgets(food_database[meal_counter].name, NAMESIZE, stdin);
 | 
						|
		if ( ptr1 == NULL ){
 | 
						|
			break;
 | 
						|
		}		
 | 
						|
		ptr2 = fgets(temp, 20, stdin);
 | 
						|
		food_database[meal_counter].price = strtof(temp, NULL);	
 | 
						|
		if ( ptr2 == NULL ){
 | 
						|
			break;
 | 
						|
		}
 | 
						|
		meal_counter++;
 | 
						|
	}			
 | 
						|
 | 
						|
	qsort(food_database,meal_counter,sizeof(struct menu),compare_name);
 | 
						|
	qsort(food_database,meal_counter,sizeof(struct menu),compare_price);
 | 
						|
	for(int i=0; i<meal_counter; i++){
 | 
						|
		printf("%s",food_database[i].name); 
 | 
						|
		printf("%f\n",food_database[i].price);
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
return 0;
 | 
						|
}
 |