Upload files to 'cv2'
This commit is contained in:
		
							parent
							
								
									c9050ce5f4
								
							
						
					
					
						commit
						e65ddf2a87
					
				
							
								
								
									
										59
									
								
								cv2/program.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								cv2/program.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,59 @@
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#define LINE_LEN 100
 | 
			
		||||
#define LIST_SIZE 128
 | 
			
		||||
typedef struct {
 | 
			
		||||
    char name[LINE_LEN];
 | 
			
		||||
    float price;
 | 
			
		||||
} pizza;
 | 
			
		||||
int get_line(char *name);
 | 
			
		||||
int get_pizza(pizza *p_item);
 | 
			
		||||
int compare_pizza(const void* pVoid1, const void* pVoid2);
 | 
			
		||||
int main() {
 | 
			
		||||
    pizza items[LIST_SIZE];
 | 
			
		||||
    memset(items,0,sizeof(items));
 | 
			
		||||
    int count = 0;
 | 
			
		||||
    while(get_pizza(items + count)) {
 | 
			
		||||
        count++;
 | 
			
		||||
    }
 | 
			
		||||
    qsort(items, count, sizeof(pizza), compare_pizza);
 | 
			
		||||
    int i = 0;
 | 
			
		||||
    while(i < count) {
 | 
			
		||||
        printf("%s\n%f\n", items[i].name, items[i].price);
 | 
			
		||||
        i++;
 | 
			
		||||
    }
 | 
			
		||||
    return 0;
 | 
			
		||||
}
 | 
			
		||||
int get_line(char *name)
 | 
			
		||||
{
 | 
			
		||||
    memset(name, 0, LINE_LEN);
 | 
			
		||||
    char* r = fgets(name, LINE_LEN, stdin);
 | 
			
		||||
    if (r == NULL || name[1] == 0) {
 | 
			
		||||
        return 0;
 | 
			
		||||
    }
 | 
			
		||||
    int n = strlen(name);
 | 
			
		||||
    if (name[n - 1] == '\n')
 | 
			
		||||
        name[n - 1] = 0;
 | 
			
		||||
    return 1;
 | 
			
		||||
}
 | 
			
		||||
int get_pizza(pizza *p_item)
 | 
			
		||||
{
 | 
			
		||||
    int res = get_line(p_item->name);
 | 
			
		||||
    char price_string[LINE_LEN];
 | 
			
		||||
    res += get_line(price_string);
 | 
			
		||||
    if (res != 2) return 0;
 | 
			
		||||
    sscanf(price_string, "%f", &(p_item->price));
 | 
			
		||||
    if(p_item->price == 0.) return 0;
 | 
			
		||||
    return 1;
 | 
			
		||||
}
 | 
			
		||||
int compare_pizza(const void* pVoid1, const void* pVoid2) {
 | 
			
		||||
    pizza* pPizza1 = (pizza*) pVoid1;
 | 
			
		||||
    float price1 = pPizza1->price;
 | 
			
		||||
    pizza* pPizza2 = (pizza*) pVoid2;
 | 
			
		||||
    float price2 = pPizza2->price;
 | 
			
		||||
    float r = price1 - price2;
 | 
			
		||||
    if (r > 0.) return 1;
 | 
			
		||||
    if (r < 0.) return -1;
 | 
			
		||||
    if (r == 0.) return 0;
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user