ok I made changes to my code. and I have some warnings about types, functions etc.Code:#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <stdio.h>
struct item
{
int ID;
char name[64];
int price;
};
int main(int argc, char *argv[])
{
FILE *fp;
char retstr[BUFSIZ];
int *f1;
char *f2;
int *f3;
char *p;
int max_cnt=15;
int i, cnt=0;
int menu_choice;
int cheapest_item;
int discount;
int x;
int q;
int d;
struct item record [10];
fp=fopen("C://shopping.txt","r");
if(fp==NULL)
{
printf("Error: can't open file.\n");
exit(1);
}
while( fgets(retstr, BUFSIZ, fp) != NULL )
{
if ((p = strchr(retstr, '\n')) != NULL)
*p = '\0';
if(cnt == max_cnt)
break;
f1=strtok(retstr, " ");
f2=strtok(NULL, " ");
f3=strtok(NULL, " ");
strcpy(record[cnt].ID, f1);
strcpy(record[cnt].name, f2);
strcpy(record[cnt].price, f3);
cnt++;
}
scanf("%d",&menu_choice);
i=0;
switch (menu_choice){
case 1:
for(i=0; i < cnt; i++)
{
printf("%d %s %d\n", record[i].ID, record[i].name,record[i].price);
}
break;
case 2:
cheapest_item = record[i].price;
for(i=0; i < cnt; i++)
{
if (record[i].price < cheapest_item)
{
printf("%s %d\n",record[i].name,record[i].price);
}
break;
case 3:
discount = (record[i].price) - ((float)0.2 *(record[i].price));
for(i=0; i<cnt; i++)
{
printf("%s %d\n",record[i].name,discount);
}
break;
case 4:
printf( "choose item for purchase\n" );
for (i=0;i<10;i++)
{
printf("Enter a number: ");
scanf("%d",&record[i].name);
printf("choice %d - %s\n",i+1,record[i].name);
printf("Enter quantity for item\n");
scanf("%d",&q);
printf("You entered %d %d %\n",x,q);
printf("Do you want to choose more items? Yes[1] No[2]");
scanf("%d",&d);
if((d==1));
{
printf("Enter a number: ");
scanf("%d",&record[i].name);
printf("choice %d - %s\n",i+1,record[i].name);
}
if((d==0));
break;
case 5: printf("total price for items\n" );
break;
case 6: printf( "Exit\n" );
break;
fclose(fp);
return 0;
}
I am mostly concernced about writing the code fore case 5, I am have no clue to go about it. And if there are still errors plz point them out :(