Update cv2/program.c
This commit is contained in:
		
							parent
							
								
									664cf46be7
								
							
						
					
					
						commit
						b51f1cd567
					
				
							
								
								
									
										124
									
								
								cv2/program.c
									
									
									
									
									
								
							
							
						
						
									
										124
									
								
								cv2/program.c
									
									
									
									
									
								
							| @ -1,5 +1,6 @@ | ||||
| #include <stdio.h> | ||||
| #include <string.h> | ||||
| #include <stdbool.h> | ||||
| 
 | ||||
| #define LINE_SIZE 100 | ||||
| #define LIST_SIZE 200 | ||||
| @ -7,68 +8,24 @@ | ||||
| struct pizza | ||||
| { | ||||
|    char name[LINE_SIZE]; | ||||
|    float prize; | ||||
|    float prize;  | ||||
| }; | ||||
| 
 | ||||
| int read_pizza_list(struct pizza* list);   | ||||
| 
 | ||||
| int compare_pizza (const void * a, const void * b) | ||||
| int compare_pizza (struct pizza p1, struct pizza p2) | ||||
| { | ||||
|     struct pizza* p1=(struct pizza*)a; | ||||
|     struct pizza* p2=(struct pizza*)b; | ||||
| 
 | ||||
|     if( p1->prize > p2->prize ) | ||||
|     if( p1.prize > p2.prize ) | ||||
|     { | ||||
|         return 1; | ||||
|     } | ||||
|      | ||||
|      | ||||
|     if( p1->prize < p2->prize ) | ||||
|     }   | ||||
|   | ||||
|     if( p1.prize < p2.prize ) | ||||
|     { | ||||
|         return -1; | ||||
|     } | ||||
| 
 | ||||
|     return strcmp(p1->name, p2->name); | ||||
| }   | ||||
| 
 | ||||
| 
 | ||||
| int main() | ||||
| { | ||||
|     struct pizza list[LIST_SIZE]; | ||||
|     memset(list,0,LIST_SIZE*sizeof(struct pizza)); | ||||
| 
 | ||||
|     int n=read_pizza_list(list); | ||||
|     printf("%d",n); | ||||
|     for(int k=0; k<n; k++) | ||||
|       printf("\n%s   %f",list[k].name, list[k].prize); | ||||
| 
 | ||||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| int read_item(struct pizza *r)  | ||||
| { | ||||
|     char*p; | ||||
|     int st; | ||||
|     do | ||||
|     { | ||||
|         p=fgets(r->name, 299, stdin); | ||||
|     }while(p!=NULL && p[0]=='\n'); | ||||
| 
 | ||||
|     if(p==NULL) {return 0;} | ||||
| 
 | ||||
|     st=scanf("%f", &r->prize); | ||||
| 
 | ||||
|        | ||||
| 
 | ||||
|     if(st==1)    | ||||
|         {return 1;}   | ||||
|     else  | ||||
|         {return 0;}    | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| int read_pizza_list(struct pizza* list)    | ||||
|     return strcmp(p1.name, p2.name); | ||||
| }    | ||||
|  int read_pizza_list(struct pizza* list)    | ||||
| {    | ||||
|     int counter = 0; | ||||
|     for (int i=0; i< LIST_SIZE; i++) | ||||
| @ -84,11 +41,68 @@ int read_pizza_list(struct pizza* list) | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             | ||||
|             break; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     return counter; | ||||
| } | ||||
|           | ||||
| void sort_pizza_list(struct pizza* list, int n) | ||||
| { | ||||
|     bool sorted; | ||||
|     struct pizza tmp; | ||||
|      | ||||
|     for(int k=0; k<n; k++) | ||||
|     { | ||||
|         sorted=true; | ||||
|         for(int i=0; i<n-1-k; i++) | ||||
|         { | ||||
|             if(compare_pizza(list[i], list[i+1])>1) | ||||
|             { | ||||
|                 tmp=list[i]; | ||||
|                 list[i]=list[i+1]; | ||||
|                 list[i+1]=tmp; | ||||
|                 sorted=false; | ||||
|             } | ||||
|         } | ||||
|         if(sorted) | ||||
|         { | ||||
|           break; | ||||
|         } | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| } | ||||
| int main() | ||||
| { | ||||
|     struct pizza list[LIST_SIZE]; | ||||
|     memset(list,0,LIST_SIZE*sizeof(struct pizza)); | ||||
| 
 | ||||
|     int n=read_pizza_list(list); | ||||
|      | ||||
|     sort_pizza_list(&list,n); | ||||
| 
 | ||||
|     for(int k=0; k<n; k++) | ||||
|       printf("\n%s%f",list[k].name, list[k].prize); | ||||
| 
 | ||||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
| int read_item(struct pizza *r)  | ||||
| { | ||||
|     char*p; | ||||
|     int st; | ||||
|     do | ||||
|     { | ||||
|         p=fgets(r->name, 299, stdin); | ||||
|     }while(p!=NULL && p[0]=='\n'); | ||||
| 
 | ||||
|     if(p==NULL) {return 0;} | ||||
| 
 | ||||
|     st=scanf("%f", &r->prize);    | ||||
| 
 | ||||
|     if(st==1)    | ||||
|         {return 1;}    | ||||
|     else  | ||||
|         {return 0;}    | ||||
| } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user