/******************************************************************************
Welcome to GDB Online.
GDB online is an online compiler and debugger tool for C/C++.
Code, Compile, Run and Debug online from anywhere in world.
*******************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char top[ 20 ] ;
struct flavor
{
char name[ 20 ] ;
double small_price;
double medium_price;
double large_price;
struct flavor * next;
struct flavor * prev;
} ;
typedef struct flavor f;
f * head = NULL ;
f * tail = NULL ;
void add_flavor( char name[ ] , double small_price, double medium_price, double large_price)
{
f * new_flavor = ( f* ) malloc ( sizeof ( f) ) ;
strcpy ( new_flavor- > name, name) ;
new_flavor- > small_price = small_price;
new_flavor- > medium_price = medium_price;
new_flavor- > large_price = large_price;
new_flavor- > next = NULL ;
new_flavor- > prev = tail;
if ( tail ! = NULL )
{
tail- > next = new_flavor;
}
tail = new_flavor;
if ( head == NULL )
{
head = new_flavor;
}
}
void display_flavors( )
{
f * current = head;
int i= 1 ;
while ( current ! = NULL )
{
printf ( "\n %d\n " ,i) ;
printf ( "%s:\n " , current- > name) ;
printf ( "Small - %.2f INR\n " , current- > small_price) ;
printf ( "Medium - %.2f INR\n " , current- > medium_price) ;
printf ( "Large - %.2f INR\n " , current- > large_price) ;
i= i+ 1 ;
current = current- > next;
}
}
void purchase_flavor( char name[ ] , char size[ ] )
{
f * current = head;
while ( current ! = NULL )
{
if ( strcasecmp( current- > name, name) == 0 )
{
double price;
if ( strcasecmp( size, "Small" ) == 0 )
{
price = current- > small_price;
}
else if ( strcasecmp( size, "Medium" ) == 0 )
{
price = current- > medium_price;
}
else if ( strcasecmp( size, "Large" ) == 0 )
{
price = current- > large_price;
}
else
{
printf ( "Invalid size.\n " ) ;
return ;
}
printf ( "You have purchased a %s Ice cream of Size %s,for %.2f INR.\n " , current- > name, size,top, price) ;
return ;
}
current = current- > next;
}
printf ( "Sorry, we don't have %s flavor.\n " , name) ;
}
int main( )
{
add_flavor( "Vanilla" , 20.0 , 30.0 , 40.0 ) ;
add_flavor( "Chocolate" , 25.0 , 35.0 , 45.0 ) ;
add_flavor( "Strawberry" , 30.0 , 40.0 , 50.0 ) ;
add_flavor( "Mango" , 35.0 , 45.0 , 55.0 ) ;
add_flavor( "Butterscotch" , 40.0 , 50.0 , 60.0 ) ;
add_flavor( "Pista" , 40.0 , 50.0 , 60.0 ) ;
add_flavor( "Chocochip" , 40.0 , 50.0 , 60.0 ) ;
add_flavor( "Malai" , 40.0 , 50.0 , 60.0 ) ;
add_flavor( "Pineapple" , 40.0 , 50.0 , 60.0 ) ;
add_flavor( "Guava" , 40.0 , 50.0 , 60.0 ) ;
printf ( "Welcome to the ice cream vending machine!\n " ) ;
printf ( "Please select a flavor and size:\n " ) ;
display_flavors( ) ;
char selected_flavor[ 20 ] ;
char selected_size[ 10 ] ;
scanf ( "%s %s" , selected_flavor, selected_size) ;
purchase_flavor( selected_flavor, selected_size) ;
int z;
printf ( "Press 1 if u want any extra topping" ) ;
scanf ( "%d" ,& z) ;
switch ( z)
{
case 1 : printf ( "\n Enter your choice of toppings for the icecream:\n Cherries\n Nuts\n Sprinklers\n Prettzels\n Marshmellow" ) ;
scanf ( "%s" ,top) ;
printf ( "\n Topping choosen=%s" ,top) ;
break ;
default : exit ( 0 ) ;
}
return 0 ;
}
LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKV2VsY29tZSB0byBHREIgT25saW5lLgpHREIgb25saW5lIGlzIGFuIG9ubGluZSBjb21waWxlciBhbmQgZGVidWdnZXIgdG9vbCBmb3IgQy9DKysuCkNvZGUsIENvbXBpbGUsIFJ1biBhbmQgRGVidWcgb25saW5lIGZyb20gYW55d2hlcmUgaW4gd29ybGQuCgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RyaW5nLmg+CgpjaGFyIHRvcFsyMF07CnN0cnVjdCBmbGF2b3IKewogICAgY2hhciBuYW1lWzIwXTsKICAgIGRvdWJsZSBzbWFsbF9wcmljZTsKICAgIGRvdWJsZSBtZWRpdW1fcHJpY2U7CiAgICBkb3VibGUgbGFyZ2VfcHJpY2U7CiAgICBzdHJ1Y3QgZmxhdm9yICpuZXh0OwogICAgc3RydWN0IGZsYXZvciAqcHJldjsKfTsKdHlwZWRlZiBzdHJ1Y3QgZmxhdm9yIGY7CmYgKmhlYWQgPSBOVUxMOwpmICp0YWlsID0gTlVMTDsKCnZvaWQgYWRkX2ZsYXZvcihjaGFyIG5hbWVbXSwgZG91YmxlIHNtYWxsX3ByaWNlLCBkb3VibGUgbWVkaXVtX3ByaWNlLCBkb3VibGUgbGFyZ2VfcHJpY2UpCnsKICAgIGYgKm5ld19mbGF2b3IgPSAoZiopIG1hbGxvYyhzaXplb2YoZikpOwogICAgc3RyY3B5KG5ld19mbGF2b3ItPm5hbWUsIG5hbWUpOwogICAgbmV3X2ZsYXZvci0+c21hbGxfcHJpY2UgPSBzbWFsbF9wcmljZTsKICAgIG5ld19mbGF2b3ItPm1lZGl1bV9wcmljZSA9IG1lZGl1bV9wcmljZTsKICAgIG5ld19mbGF2b3ItPmxhcmdlX3ByaWNlID0gbGFyZ2VfcHJpY2U7CiAgICBuZXdfZmxhdm9yLT5uZXh0ID0gTlVMTDsKICAgIG5ld19mbGF2b3ItPnByZXYgPSB0YWlsOwogICAgaWYgKHRhaWwgIT0gTlVMTCkKICAgIHsKICAgICAgICB0YWlsLT5uZXh0ID0gbmV3X2ZsYXZvcjsKICAgIH0KICAgIHRhaWwgPSBuZXdfZmxhdm9yOwogICAgaWYgKGhlYWQgPT0gTlVMTCkKICAgIHsKICAgICAgICBoZWFkID0gbmV3X2ZsYXZvcjsKICAgIH0KfQoKCgp2b2lkIGRpc3BsYXlfZmxhdm9ycygpCnsKICAgIGYgKmN1cnJlbnQgPSBoZWFkOwogICAgaW50IGk9MTsKICAgIHdoaWxlIChjdXJyZW50ICE9IE5VTEwpCiAgICB7CiAgICAgICAgcHJpbnRmKCJcbiVkXG4iLGkpOwogICAgICAgIHByaW50ZigiJXM6XG4iLCBjdXJyZW50LT5uYW1lKTsKICAgICAgICBwcmludGYoIlNtYWxsIC0gJS4yZiBJTlJcbiIsIGN1cnJlbnQtPnNtYWxsX3ByaWNlKTsKICAgICAgICBwcmludGYoIk1lZGl1bSAtICUuMmYgSU5SXG4iLCBjdXJyZW50LT5tZWRpdW1fcHJpY2UpOwogICAgICAgIHByaW50ZigiTGFyZ2UgLSAlLjJmIElOUlxuIiwgY3VycmVudC0+bGFyZ2VfcHJpY2UpOwogICAgICAgIGk9aSsxOwogICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LT5uZXh0OwogICAgICAgIAogICAgfQp9Cgp2b2lkIHB1cmNoYXNlX2ZsYXZvcihjaGFyIG5hbWVbXSwgY2hhciBzaXplW10pIAp7CiAgICBmICpjdXJyZW50ID0gaGVhZDsKICAgIHdoaWxlIChjdXJyZW50ICE9IE5VTEwpCiAgICB7CiAgICAgICAgaWYgKHN0cmNhc2VjbXAoY3VycmVudC0+bmFtZSwgbmFtZSkgPT0gMCkKICAgICAgICB7CiAgICAgICAgICAgIGRvdWJsZSBwcmljZTsKICAgICAgICAgICAgaWYgKHN0cmNhc2VjbXAoc2l6ZSwgIlNtYWxsIikgPT0gMCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcHJpY2UgPSBjdXJyZW50LT5zbWFsbF9wcmljZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmIChzdHJjYXNlY21wKHNpemUsICJNZWRpdW0iKSA9PSAwKSAKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcHJpY2UgPSBjdXJyZW50LT5tZWRpdW1fcHJpY2U7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiAoc3RyY2FzZWNtcChzaXplLCAiTGFyZ2UiKSA9PSAwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBwcmljZSA9IGN1cnJlbnQtPmxhcmdlX3ByaWNlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcHJpbnRmKCJJbnZhbGlkIHNpemUuXG4iKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBwcmludGYoIllvdSBoYXZlIHB1cmNoYXNlZCBhICVzIEljZSBjcmVhbSBvZiBTaXplICVzLGZvciAlLjJmIElOUi5cbiIsIGN1cnJlbnQtPm5hbWUsIHNpemUsdG9wLCBwcmljZSk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgY3VycmVudCA9IGN1cnJlbnQtPm5leHQ7CiAgICB9CiAgICBwcmludGYoIlNvcnJ5LCB3ZSBkb24ndCBoYXZlICVzIGZsYXZvci5cbiIsIG5hbWUpOwp9CgoKaW50IG1haW4oKQp7CiAgICBhZGRfZmxhdm9yKCJWYW5pbGxhIiwgMjAuMCwgMzAuMCwgNDAuMCk7CiAgICBhZGRfZmxhdm9yKCJDaG9jb2xhdGUiLCAyNS4wLCAzNS4wLCA0NS4wKTsKICAgIGFkZF9mbGF2b3IoIlN0cmF3YmVycnkiLCAzMC4wLCA0MC4wLCA1MC4wKTsKICAgIGFkZF9mbGF2b3IoIk1hbmdvIiwgMzUuMCwgNDUuMCwgNTUuMCk7CiAgICBhZGRfZmxhdm9yKCJCdXR0ZXJzY290Y2giLCA0MC4wLCA1MC4wLCA2MC4wKTsKICAgIGFkZF9mbGF2b3IoIlBpc3RhIiwgNDAuMCwgNTAuMCwgNjAuMCk7CiAgICBhZGRfZmxhdm9yKCJDaG9jb2NoaXAiLCA0MC4wLCA1MC4wLCA2MC4wKTsKICAgIGFkZF9mbGF2b3IoIk1hbGFpIiwgNDAuMCwgNTAuMCwgNjAuMCk7CiAgICBhZGRfZmxhdm9yKCJQaW5lYXBwbGUiLCA0MC4wLCA1MC4wLCA2MC4wKTsKICAgIGFkZF9mbGF2b3IoIkd1YXZhIiwgNDAuMCwgNTAuMCwgNjAuMCk7CiAgICBwcmludGYoIldlbGNvbWUgdG8gdGhlIGljZSBjcmVhbSB2ZW5kaW5nIG1hY2hpbmUhXG4iKTsKICAgIHByaW50ZigiUGxlYXNlIHNlbGVjdCBhIGZsYXZvciBhbmQgc2l6ZTpcbiIpOwogICAgZGlzcGxheV9mbGF2b3JzKCk7CiAgICBjaGFyIHNlbGVjdGVkX2ZsYXZvclsyMF07CiAgICBjaGFyIHNlbGVjdGVkX3NpemVbMTBdOwogICAgc2NhbmYoIiVzICVzIiwgc2VsZWN0ZWRfZmxhdm9yLCBzZWxlY3RlZF9zaXplKTsKICAgIHB1cmNoYXNlX2ZsYXZvcihzZWxlY3RlZF9mbGF2b3IsIHNlbGVjdGVkX3NpemUpOwogICAgaW50IHo7CiAgICBwcmludGYoIlByZXNzIDEgaWYgdSB3YW50IGFueSBleHRyYSB0b3BwaW5nIik7CiAgICBzY2FuZigiJWQiLCZ6KTsKICAgIHN3aXRjaCh6KQogICAgewogICAgICAgIGNhc2UgMTpwcmludGYoIlxuRW50ZXIgeW91ciBjaG9pY2Ugb2YgdG9wcGluZ3MgZm9yIHRoZSBpY2VjcmVhbTpcbkNoZXJyaWVzXG5OdXRzXG5TcHJpbmtsZXJzXG5QcmV0dHplbHNcbk1hcnNobWVsbG93Iik7CiAgICAgICAgICAgICAgICAgc2NhbmYoIiVzIix0b3ApOwogICAgICAgICAgICAgICAgcHJpbnRmKCJcblRvcHBpbmcgY2hvb3Nlbj0lcyIsdG9wKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6ZXhpdCgwKTsKICAgIH0KICAgIHJldHVybiAwOwp9