Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

Using function prototypes with a loop

Posted on 1998-04-22
5
236 Views
Last Modified: 2010-04-15
I am writing a program to use global function prototypes. So far I have the functions working the way I want but
the last last part of the loop will not print the letter and terminate the program. Can any body help? I can not use
global variables and goto statements. I have six letters to let the user pick from,('A/a','B/b','P/p','X/x','y/y',or'Q/q')
once the letter is chosen, it prints out as an upper case version using the lower case letter. If the letter 'Q' or 'q'
is used it is supposed to print out the upper case version and terminate. This is where I am having the problem.
The program starts:
#include <stdio.h>
void prn_A(void);
void prn_B(void);
void prn_P(void);
void prn_X(void);
void prn_Y(void);
void prn_Q(void);
void main ()
{
  char ch;
      do
      { printf("Enter one of the following upper or lower case letters, A/a, B/b, P/p, X/x, Y/y or (Q/q to quit)"  );
                        flushall();
                        ch=getchar();
            if(ch=='Q' || ch=='q')
                continue;
                else if(ch=="A' || ch=='a')
                           prn_A();
                else if(ch=='B' || ch=='b')
                           prn_B();
                else if(ch=='P' || ch=='p')
                           prn_P();
                else if(ch=='X' || ch=='x')
                           prn_X();
                else if(ch=='Y' || ch=='y')
                           prn_Y();
     }
       while(ch!='Q' || ch!='q');
                 prn_Q();
}
       void prn_A(void)
       {
         printf("This is where it prints the upper case version of 'A' using lower case 'a'");
       }
       void prn_B(void)
       {
        printf("This is where it prints the upper case version of 'B' using lower case 'b'");
       }
       void prn_P(void)
       {
        printf("This is where it prints the upper case version of 'P' using lower case 'p'");
       }
And so on, the remaining letters are the same. As I said, everything works up to the point where I try to print
the letter 'Q' and terminate the program. I am new at this so please have patience with my programing.            
0
Comment
Question by:cstudent
  • 3
  • 2
5 Comments
 

Author Comment

by:cstudent
ID: 1252061
Edited text of question
0
 
LVL 3

Accepted Solution

by:
q2guo earned 50 total points
ID: 1252062
I think line
while(ch!='Q' || ch!='q');

should be
while(ch !='Q' && ch !='q');
0
 

Author Comment

by:cstudent
ID: 1252063
Thanks for the info. It worked just fine. My only question is why the && and not the || ?
Don't both conditions have to be true using && ? Thanks again. cstudent
0
 
LVL 3

Expert Comment

by:q2guo
ID: 1252064
Well, think about it

when you say while(ch != 'Q' || ch != 'q')
you are telling the computer you want to stay in the
loop if ch is not Q or ch is not q.  Since ch will
never be Q and q at the same time.  So, the loop continues for
ever.
0
 

Author Comment

by:cstudent
ID: 1252065
g2guo,
Thanks for the explanation. It helped a lot.
                                        cstudent
0

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Windows programmers of the C/C++ variety, how many of you realise that since Window 9x Microsoft has been lying to you about what constitutes Unicode (http://en.wikipedia.org/wiki/Unicode)? They will have you believe that Unicode requires you to use…
Examines three attack vectors, specifically, the different types of malware used in malicious attacks, web application attacks, and finally, network based attacks.  Concludes by examining the means of securing and protecting critical systems and inf…
The goal of this video is to provide viewers with basic examples to understand and use pointers in the C programming language.
The goal of this video is to provide viewers with basic examples to understand and use structures in the C programming language.

808 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question