Im having problems with segmentation faults and I also need help with case 3 deleting a ship from the array thx for the help.
Code:#include<string.h> #include<stdio.h> #include<stdlib.h> typedef struct { char name[25]; char ship_type; //‘T’ = tanker ‘S’ = schooner ‘Y’ = yacht int hostages; float shipValue; float ransomeDemand; }VESSEL; int main(){ char searchName[25]; int ShipsCaptured,i,input,c,j,searchCount=0,size=0; int MAX =500; VESSEL *vess; vess=(VESSEL*)calloc(MAX,sizeof(VESSEL)); i=0; while(strcmp(vess[i].name,"RUM")!=0){ printf("Name of ship "); scanf("%s",&vess[i].name); if(strcmp(vess[i].name,"RUM")!=0){ printf("Type of ship either a 'T' for tanker 'S' for schooner or 'Y' for yacht "); scanf("%s",&vess[i].ship_type); printf("Number of Hostages "); scanf("%d",&vess[i].hostages); printf("Ship Value "); scanf("%f",&vess[i].shipValue); printf("Ransom Demanded "); scanf("%f",&vess[i].ransomeDemand); i++; size++; } } while(input!=5){ printf("Type 1 to see a captured ships data\n2 add a ship\n3 remove a ship\n4 generatereport\n5 exit"); scanf("\n%d",&input); switch(input) { case 1: printf("Please enter ship name you wish to search: "); scanf("%s",&searchName); for(j=0;j<size;j++) { if(strcmp(vess[j].name,searchName)==0) { printf("\n%s\nName: %s\nShip Type: %d\nHostages: %.2f\nShip Value: %.2f Ransome Demanded\n\n",vess[j].name,vess[j].ship_type,vess[j].hostages,vess[j].shipValue,vess[j].ransomeDemand); searchCount++; } } if(searchCount==0) { printf("Invalid Ship Name\n"); } break; case 2: for(c=0;c<10;c++){ printf("Name of ship"); scanf("%s",&vess[c].name); printf("Type of ship either a T for tanker S for schooner or Y for yacht"); scanf("%s",&vess[c].ship_type); printf("Number of Hostages"); scanf("%d",&vess[c].hostages); printf("Ship Value"); scanf("%f",&vess[c].shipValue); printf("Ransom Demanded"); scanf("%f",&vess[c].ransomeDemand); printf("congrats you added a ship"); } break; case 3: printf("Please enter ship name you wish to delete: "); scanf("%s",&searchName); for(j=0;j<size;j++) { if(strcmp(vess[j].name,searchName)==0) { //vess[j].name=""; size--; } } if(searchCount==0) { printf("Invalid ship Name\n"); } break; case 4:for(j=0;j<size;j++) { printf("\n%s\nName: %s\nShip Type: %d\nHostages: %.2f\nShip Value: %.2f Ransome Demanded\n\n",vess[j].name,vess[j].ship_type,vess[j].hostages,vess[j].shipValue,vess[j].ransomeDemand); } break; } } return 0; }



LinkBack URL
About LinkBacks


