How to restart a loop after capturing a wrong input?

Discussion in 'C' started by askmewhy25, Feb 14, 2010.

  1. askmewhy25

    askmewhy25 New Member

    Joined:
    Jan 24, 2010
    Messages:
    49
    Likes Received:
    0
    Trophy Points:
    0
    How to restart a loop after capturing a wrong input?
    because if i inputted a string or a character, my program captures the error but
    the problem is that my program does not return from the initial spot or initial position
    how can i solve that?this is my program

    Code:
    //This program can evaluate a 10th order polynomial single variable,
    //can solve for statistical algorithms mainly mean, standard deviation
    //and summation of data with a maximum of 10 data,
    //can solve for ideal gas equation with the gas sample of nitrogen and
    //can build a database of strings which can store of 16 strings with 128
    //maximum characters, remove a string from the database, view the strings
    //and search the strings inside the database
    
    #include <stdio.h>
    #include <conio.h>
    #include <math.h>
    #include <stdlib.h>
    #include <string.h>
    
    //Jerome H. Macatangay 10821333 MEE 2nd Year
    //Andre Lloyd A. Torres 10832513 MEE 2nd Year
    
    //Start Program
    main(){
           int selection;
           //Variables for Polynomial Evaluation
           double polysum=0, x;
           int n, QA, m;
           //Variables for Statistical Algorithms
           int SA,a,b,sum=0,data[10];
           float mean;
           double calc,sd;
           //Variables for Ideal Gas Equations
           int unknown1;
           float P, V, R, M, T;
           R=8.3143/28.01;
           //Variables for String Database
           char string[16][128],temp[128],search[128];
           int i=0,s=0,y,rep,sel,eq;
           //Menu Selection Screen    
           do{
                  selection=0;
                  system("cls");
                  printf("Menu Selection Screen\n\n");
                  printf("1 - Polynomial Evaluation\n");
                  printf("2 - Statistical Algorithms\n");
                  printf("3 - Ideal Gas Law\n");
                  printf("4 - String Database\n");
                  printf("5 - Exit\n");
             
                  scanf("%d",&selection);
                  switch(selection){
                                    case 1:
                                           do{
                                              do{
                                                 system("cls");
                                                 printf("Polynomial Evaluation\n\n");
                                                 printf("Enter the Order of Polynomial (max. 10): ");
                                                 scanf("%d",&n);
                                                 if(n>10||n<1){
                                                               system("cls");
                                                               printf("Invalid input. Please try again!!!\n");
                                                               printf("Please press the spacebar to continue!!");
                                                               getche();
                                                               }
                                                 }while(n>10||n<1);
                                                 
                                                 double poly[n+1];
                                                 
                                                 for(m=n;m>=0;m--){
                                                             printf("Please enter the constant for X raised to the %dth: ", m);
                                                             scanf("%lf",&poly[m]);
                                                 }
                                                 printf("Enter the value of X: ");
                                                 scanf("%lf",&x);   
                                                 for(m=n;m>=0;m--)
                                                                   polysum+=poly[m]*pow(x,m);
                                                 printf("The evaluated value of the %dth Order Polynomial  %.2lf\n", n, polysum);
                                                 printf("Please press the spacebar to continue!!\n");
                                                 getche();
                                                 do{
                                                    system("cls");
                                                    printf("Do you want to repeat the computation?\n\n");
                                                    printf("1 - Yes\n");
                                                    printf("2 - No\n");
                                                    scanf("%d", &QA);
                                                    switch(QA){
                                                               case 1:
                                                                    break;
                                                               case 2:
                                                                    main();
                                                                    break;
                                                               default:
                                                                       system("cls");
                                                                       printf("Invalid input. Please try again!!!\n");
                                                                       printf("Please press the spacebar to continue!!");
                                                                       getche();
                                                                       break;   
                                                               }
                                                    }while(QA>2||QA<1);
                                                    polysum=0;
                                                 }while(QA==1);
                                         break;
                                    case 2:
                                         do{
                                              sum=0;
                                              mean=0;
                                              calc=0;
                                              sd=0;
                                              system("cls");
                                              printf("Statistical Algorithms\n\n");
                                              printf("1 - Mean\n");
                                              printf("2 - Standard Deviation\n");
                                              printf("3 - Summation of data\n");
                                              printf("4 - Go Back to Menu Selection Screen\n");
                                                                       
                                              scanf("%d", &SA);
                                              switch(SA){
                                                         case 1:
                                                              do{
                                                                 system("cls");
                                                                 printf("Mean\n\n");
                                                                 printf("Enter the Number of Data (max. 10): ");
                                                                 scanf("%d", &b);
                                                                 if(b>10||b<1){
                                                                               system("cls");
                                                                               printf("Invalid input. Please try again!!!\n");
                                                                               printf("Please press the spacebar to continue!!");
                                                                               getche();
                                                                               }
                                                                 }while(b>10||b<1);
                                                              for(a=0;a<b;a++){
                                                                 printf("Enter the Actual Values of Data %d: ", a+1);
                                                                 scanf("%d",&data[a]);
                                                                 }
                                                              for(a=0;a<b;a++){
                                                                 sum=sum+data[a];
                                                                 }
                                                              mean=(float)sum/a;
                                                              printf("The Mean of the Data is %f\n",mean);
                                                              printf("Please press the spacebar to continue!!");
                                                              getche();
                                                              break;
                                                         case 2:
                                                              do{
                                                                 system("cls");
                                                                 printf("Standard Deviation\n\n");
                                                                 printf("Enter the Number of Data (max. 10): ");
                                                                 scanf("%d", &b);
                                                                 if(b>10||b==0){
                                                                               system("cls");
                                                                               printf("Invalid input. Please try again!!!\n");
                                                                               printf("Please press the spacebar to continue!!\n");
                                                                               getche();
                                                                               }
                                                                 }while(b>10||b==0);
                                                              for(a=0;a<b;a++){
                                                                 printf("Enter the Actual Values of Data %d: ", a+1);
                                                                 scanf("%d",&data[a]);
                                                                 }
                                                              if(b==1){
                                                                 printf("The Standard Deviation the Data is 0\n");
                                                                 printf("Please press the spacebar to continue!!");
                                                                 getche();
                                                                 break;
                                                                      }
                                                              for(a=0;a<b;a++){
                                                                 sum=sum+data[a];
                                                                 }
                                                              mean=(float)sum/a;
                                                              for(a=0;a<b;a++){
                                                                 calc+=pow((data[a]-mean),2);
                                                                 }
                                                              sd=sqrt(calc/(b-1));
                                                              printf("The Standard Deviation the Data is %lf\n",sd);
                                                              printf("Please press the spacebar to continue!!");
                                                              getche();
                                                              break;
                                                         case 3:
                                                              do{
                                                                 system("cls");
                                                                 printf("Summation of Data\n\n");
                                                                 printf("Enter the Number of Data (max. 10): ");
                                                                 scanf("%d", &b);
                                                                 if(b>10||b<1){
                                                                               system("cls");
                                                                               printf("Invalid input. Please try again!!!\n");
                                                                               printf("Please press the spacebar to continue!!");
                                                                               getche();
                                                                               }
                                                                 }while(b>10||b<1);
                                                              for(a=0;a<b;a++){
                                                                 printf("Enter the Actual Values of Data %d: ", a+1);
                                                                 scanf("%d",&data[a]);
                                                              }
                                                              for(a=0;a<b;a++){
                                                                 sum=sum+data[a];
                                                                 }
                                                              mean=(float)sum/a;
                                                              printf("The Summation of the Data is %d\n",sum);
                                                              printf("Please press the spacebar to continue!!");
                                                              getche();
                                                              break;
                                                         case 4:
                                                              main();
                                                              break;
                                                         default:
                                                                 system("cls");
                                                                 printf("Invalid Input. Please try again!!!\n");
                                                                 printf("Please press the spacebar to continue!!");
                                                                 getche();
                                                                 break;
                                                         }
                                              }while(SA!=4);              
                                         break;
                                    case 3:
                                         do{
                                               P=0;
                                               V=0;
                                               M=0;
                                               T=0;
                                    system("cls");
                                    printf("Ideal Gas Law\n");
                                    printf("PV = mRT\n\n");
                                    printf("Select one of the Unknowns\n");
                                    printf("1 - P\n");
                                    printf("2 - V\n");
                                    printf("3 - M\n");
                                    printf("4 - T\n");
                                    printf("5 - Go Back to Menu Selection Screen\n");
                              
                                    scanf("%d", &unknown1);                                 
                                    switch(unknown1){
                                                     
                                                    case 1:
                                                         do{
                                                         system("cls");
                                                         printf("Solving for Pressure\n\n");
                                                         printf("Volume (m^3): ");
                                                         scanf("%f",&V);
                                                         printf("Mass (kg): ");
                                                         scanf("%f",&M);
                                                         printf("Temperature (K): ");
                                                         scanf("%f",&T);
                                                         
                                                         if(V<=0){
                                                                  system("cls");
                                                                  printf("Invalid input of Volume\n");
                                                                  printf("Please press the spacebar to continue!!");
                                                                  getche();
                                                                  }
                                                         if(M<=0){
                                                                  system("cls");
                                                                  printf("Invalid input of Mass\n");
                                                                  printf("Please press the spacebar to continue!!");
                                                                  getche();
                                                                  }
                                                         if(T<=-273){
                                                                  system("cls");
                                                                  printf("Invalid input of Temperature\n");
                                                                  printf("Please press the spacebar to continue!!");
                                                                  getche();
                                                                  }
                                                                                                                       
                                                         }while(V<=0||T<=-273||M<=0);
                                                         P = M*R*T/V;
                                                         printf("The Pressure is %f kPa\n",P);
                                                         printf("Please press the spacebar to continue!!");
                                                         getche();
                                                         
                                                         break;
                                                    case 2:
                                                         do{
                                                         system("cls");
                                                         printf("Solving for Volume\n\n");
                                                         printf("Pressure (KPa): ");
                                                         scanf("%f",&P);
                                                         printf("Mass (kg): ");
                                                         scanf("%f",&M);
                                                         printf("Temperature (K): ");
                                                         scanf("%f",&T);
                                                                                                            
                                                         if(P<=0){
                                                                  system("cls");
                                                                  printf("Invalid input of Pressure\n");
                                                                  printf("Please press the spacebar to continue!!");
                                                                  getche();
                                                                  }
                                                         if(M<=0){
                                                                  system("cls");
                                                                  printf("Invalid input of Mass\n");
                                                                  printf("Please press the spacebar to continue!!");
                                                                  getche();
                                                                  }
                                                         if(T<=-273){
                                                                  system("cls");
                                                                  printf("Invalid input of Temperature\n");
                                                                  printf("Please press the spacebar to continue!!");
                                                                  getche();
                                                                  }
                                                                                                                       
                                                         }while(P<=0||T<=-273||M<=0);
                                                         
                                                         V = M*R*T/P;
                                                         printf("The Volume is %f m^3\n",V);
                                                         printf("Please press the spacebar to continue!!");
                                                         getche();
                                                         break;
                                                    case 3:
                                                         do{
                                                         system("cls");
                                                         printf("Solving for Mass\n\n");
                                                         printf("Pressure (KPa): ");
                                                         scanf("%f",&P);
                                                         printf("Volume (m^3): ");
                                                         scanf("%f",&V);
                                                         printf("Temperature (K): ");
                                                         scanf("%f",&T);
    
                                                         if(P<=0){
                                                                  system("cls");
                                                                  printf("Invalid input of Pressure\n");
                                                                  printf("Please press the spacebar to continue!!");
                                                                  getche();
                                                                  }
                                                         if(V<=0){
                                                                  system("cls");
                                                                  printf("Invalid input of Volume\n");
                                                                  printf("Please press the spacebar to continue!!");
                                                                  getche();
                                                                  }
                                                         if(T<=-273){
                                                                  system("cls");
                                                                  printf("Invalid input of Temperature\n");
                                                                  printf("Please press the spacebar to continue!!");
                                                                  getche();
                                                                  }
                                                         
                                                         }while(P<=0||T<=-273||V<=0);
                                                         
                                                         M=(P*V)/(R*T);
                                                         printf("The Mass is %f kg\n",M);
                                                         printf("Please press the spacebar to continue!!");
                                                         getche();
                                                         break;
                                                    case 4:
                                                         do{
                                                         system("cls");
                                                         printf("Solving for Temperature\n\n");
                                                         printf("Pressure (KPa): ");
                                                         scanf("%f",&P);
                                                         printf("Volume (m^3): ");
                                                         scanf("%f",&V);
                                                         printf("Mass (kg): ");
                                                         scanf("%f",&M);
                                                         
                                                         if(P<=0){
                                                                  system("cls");
                                                                  printf("Invalid input of Pressure\n");
                                                                  printf("Please press the spacebar to continue!!");
                                                                  getche();
                                                                  }
                                                         if(V<=0){
                                                                  system("cls");
                                                                  printf("Invalid input of Volume\n");
                                                                  printf("Please press the spacebar to continue!!");
                                                                  getche();
                                                                  }               
                                                         if(M<=0){
                                                                  system("cls");
                                                                  printf("Invalid input of Mass\n");
                                                                  printf("Please press the spacebar to continue!!");
                                                                  getche();
                                                                  }
                                                         }while(P<=0||M<=0||V<=0);
                                                         
                                                         T = (P*V)/(M*R);
                                                         printf("The Temperature is %f K\n",T);
                                                         printf("Please press the spacebar to continue!!");
                                                         getche();
                                                         break;
                                                    case 5:
                                                         main();
                                                         break;
                                                    default:
                                                            system("cls");
                                                            printf("Invalid input, please try again!!\n");
                                                            printf("Please press the spacebar to continue!!");
                                                            getche();
                                                            break;     
                                                    }
                                    }while(unknown1 != 5);
                                    break;
                                    case 4:
                                       do{
                                          do{//Menu Selection Screen 
                                          do{ 
                                             system("cls");
                                             printf("String Database\n\n");
                                             printf("1 - Store a String to the Database\n");
                                             printf("2 - Remove a String from the Database\n");
                                             printf("3 - View Strings in the Database\n");
                                             printf("4 - Search a String in the Database\n");
                                             printf("5 - Go Back to Menu Selection Screen\n");
                                             scanf("%d",&selection);
                                             if(selection<1||selection>5){
                                             system("cls");
                                             printf("Invalid input. Please try again!!!\n");
                                             printf("Please press the spacebar to continue!!");
                                             getche();
                                             break;
                                             }
                                             }while(selection<1||selection>5);
                                             }while(selection!=1&&selection!=2&&selection!=3&&selection!=4&&selection!=5);
                                          
                                          if(selection==1){
                                                     do{//Store a String to the Database
                                                        system("cls");
                                                        printf("How many string do you want enter: ");
                                                        scanf("%d",&s);
                                                        for(i=-1;i<s;i++){
                                                        printf("Input a string: ");
                                                        gets(string[i]);
                                                        }
                                                        do{
                                                        do{
                                                           system("cls");
                                                           printf("String successfully added\n");
                                                           printf("Enter another string?\n\n");
                                                           printf("1 - Yes\n");
                                                           printf("2 - No\n");
                                                           scanf("%d",&rep);
                                                           if(rep<1||rep>2){
                                                           system("cls");
                                                           printf("Invalid input. Please try again!!!\n");
                                                           printf("Please press the spacebar to continue!!");
                                                           getche();
                                                           break;   
                                                           }
                                                           }while(rep<1||rep>2);
                                                           }while(rep!=1&&rep!=2);
                                                        }while(rep==1);
                                                     }
                                          else if(selection==2){
                                               do{//Remove a String from the Database
                                                  system("cls");
                                                  printf("Select position of string to remove:\n");
                                                  for(i=0;i<s;i++)
                                                     printf("%d-%s\n",i+1,string[i]);
                                                     scanf("%d",&y);
                                                     strcpy(string[y-1],"");
                                                     s--;
                                                     strcpy(temp,string[s]);
                                                  for(i=y;i<s;i++)
                                                     strcpy(string[i-1],string[i]);
                                                     strcpy(string[s-1],temp);
                                                  do{
                                                  do{
                                                     system("cls");
                                                     printf("String successfully deleted\n");
                                                     printf("Remove another string?\n\n");
                                                     printf("1 - Yes\n");
                                                     printf("2 - No\n");
                                                     scanf("%d",&rep);
                                                     if(rep<1||rep>2){
                                                     system("cls");
                                                     printf("Invalid input. Please try again!!!\n");
                                                     printf("Please press the spacebar to continue!!");
                                                     getche();
                                                     break;   
                                                     }
                                                     }while(rep<1||rep>2);
                                                     }while(rep!=1&&rep!=2);
                                                  }while(rep==1);
                                               }
                                          else if(selection==3){//View Strings in the Database
                                               system("cls");
                                               for(i=0;i<s;i++)
                                                  printf("%d - %s\n",i+1,string[i]);
                                                  printf("Please press the spacebar to continue!!\n");
                                               getch();
                                               }
                                          else if(selection==4){
                                               do{//Search a String in the Database
                                                  system("cls");
                                                  eq=1;
                                                  strcpy(search,"");
                                                  for(i=-1;i<1;i++){
                                                  printf("Enter string to search: ");
                                                  gets(search);
                                                  }
                                                  for(i=0;i<s;i++){
                                                     eq=strcmp(string[i],search);
                                                     if(eq==0)
                                                     break;
                                                     }
                                                  do{
                                                     system("cls");
                                                     if(eq==0){
                                                     printf("String matched\n");
                                                     printf("Position of searched string in array is %d\n",i+1);
                                                     printf("Please press the spacebar to continue!!\n");
                                                     getche();
                                                     }
                                                     else{
                                                     do{
                                                     printf("String not found\n");
                                                     printf("Search another string?\n\n");
                                                     printf("1 - Yes\n");
                                                     printf("2 - No\n");
                                                     scanf("%d",&rep);
                                                     if(rep<1||rep>2){
                                                     system("cls");
                                                     printf("Invalid input. Please try again!!!\n");
                                                     printf("Please press the spacebar to continue!!");
                                                     getche();
                                                     break;   
                                                     }
                                                     }while(rep<1||rep>2);
                                                     }
                                                     }while(rep!=1&&rep!=2);
                                                  }while(rep==1);
                                               }
                                          else if(sel==5){
                                               main();
                                               break;
                                          }
                                          }while(sel!=5);
                                         break;
                                    case 5:
                                         return 0;
                                         break;
                                    default:
                                            system("cls");
                                            printf("Invalid input. Please try again!!!\n");
                                            printf("Please press the spacebar to continue!!");
                                            getche();
                                            break;
                                    }
             }while(selection>5 || selection<=0);
    }
           
    
    
     
  2. virxen

    virxen Active Member

    Joined:
    Nov 24, 2009
    Messages:
    387
    Likes Received:
    90
    Trophy Points:
    28
    if i understand correctly what you want

    try this

    Code:
    ................
    char n1[10];
    ....................
    do{
                                                 system("cls");
                                                 printf("Polynomial Evaluation\n\n");
                                                 printf("Enter the Order of Polynomial (max. 10): ");
                                                 [COLOR=Red]scanf("%s",&n1);
                                                 n=atoi(n1);[/COLOR]
                                                 if(n>10||n<1){
                                                               system("cls");
                                                               printf("Invalid input. Please try again!!!\n");
                                                               printf("Please press the spacebar to continue!!");
                                                               getche();
                                                               }
                                                 }while(n>10||n<1);
    ............................
    
     
    shabbir likes this.
  3. askmewhy25

    askmewhy25 New Member

    Joined:
    Jan 24, 2010
    Messages:
    49
    Likes Received:
    0
    Trophy Points:
    0
    Thanks a lot for that!!!:D
     

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice