Update cv2/program.c
This commit is contained in:
		
							parent
							
								
									664cf46be7
								
							
						
					
					
						commit
						b51f1cd567
					
				
							
								
								
									
										116
									
								
								cv2/program.c
									
									
									
									
									
								
							
							
						
						
									
										116
									
								
								cv2/program.c
									
									
									
									
									
								
							@ -1,5 +1,6 @@
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#include <stdbool.h>
 | 
			
		||||
 | 
			
		||||
#define LINE_SIZE 100
 | 
			
		||||
#define LIST_SIZE 200
 | 
			
		||||
@ -10,65 +11,21 @@ struct pizza
 | 
			
		||||
   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);
 | 
			
		||||
    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)   
 | 
			
		||||
 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