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 <stdio.h>
 | 
				
			||||||
#include <string.h>
 | 
					#include <string.h>
 | 
				
			||||||
 | 
					#include <stdbool.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define LINE_SIZE 100
 | 
					#define LINE_SIZE 100
 | 
				
			||||||
#define LIST_SIZE 200
 | 
					#define LIST_SIZE 200
 | 
				
			||||||
@ -7,68 +8,24 @@
 | 
				
			|||||||
struct pizza
 | 
					struct pizza
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
   char name[LINE_SIZE];
 | 
					   char name[LINE_SIZE];
 | 
				
			||||||
   float prize;
 | 
					   float prize; 
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int read_pizza_list(struct pizza* list);  
 | 
					int compare_pizza (struct pizza p1, struct pizza p2)
 | 
				
			||||||
 | 
					 | 
				
			||||||
int compare_pizza (const void * a, const void * b)
 | 
					 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    struct pizza* p1=(struct pizza*)a;
 | 
					    if( p1.prize > p2.prize )
 | 
				
			||||||
    struct pizza* p2=(struct pizza*)b;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if( p1->prize > p2->prize )
 | 
					 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        return 1;
 | 
					        return 1;
 | 
				
			||||||
    }
 | 
					    }  
 | 
				
			||||||
    
 | 
					 
 | 
				
			||||||
    
 | 
					    if( p1.prize < p2.prize )
 | 
				
			||||||
    if( p1->prize < p2->prize )
 | 
					 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        return -1;
 | 
					        return -1;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return strcmp(p1->name, p2->name);
 | 
					    return strcmp(p1.name, p2.name);
 | 
				
			||||||
}  
 | 
					}   
 | 
				
			||||||
 | 
					 int read_pizza_list(struct pizza* list)   
 | 
				
			||||||
 | 
					 | 
				
			||||||
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)   
 | 
					 | 
				
			||||||
{   
 | 
					{   
 | 
				
			||||||
    int counter = 0;
 | 
					    int counter = 0;
 | 
				
			||||||
    for (int i=0; i< LIST_SIZE; i++)
 | 
					    for (int i=0; i< LIST_SIZE; i++)
 | 
				
			||||||
@ -84,11 +41,68 @@ int read_pizza_list(struct pizza* list)
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
           
 | 
					 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return counter;
 | 
					    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