Reputation: 71
I have a problem exiting my program. I just want the program to exit when I enter 5, but this error pops up:
Process returned 0 (0x0) execution time : 3.179 s Press any key to continue.
What can be the problem??
#include <stdio.h>
#include <conio.h>
#include<stdlib.h>
#define p printf
#define s scanf
int main()
{
char ans='y', asc_desc;
signed char name[100];
int a, b, c, prog_num, num;
double product=1;
float ave, sum, count;
p("Please enter your name: ");
s(" %[^\n]s", &name);
system("cls");
do
{
p("%s, welcome to Menu Program\n", name);
p("\n1. Ascending/Descending\n\n2. Sum/Average\n\n3. Factorial\n\n4. Display the first 10 positive integers from the number entered.\n\n5. Exit");
p("\n\nPlease select the number of program: ");
s("%d", &prog_num);
system("cls");
if(prog_num==1)
{
do
{
p("\t\t\t *Ascending or Descending?*");
p("\n\nPlease enter any three integers:\n\n");
s("%d", &a);
p("\n");
s("%d", &b);
p("\n");
s("%d", &c);
p("\n");
p("Do you want your integers sorted ascending or descending? a/d\n\n");
s(" %c", &asc_desc);
if(asc_desc=='a'||asc_desc=='A')
{
if(c>b&&b>a)
p("\nArranged numbers are: %d %d %d", a, b, c);
else if(c<b&&b<a)
p("\nArranged numbers are: %d %d %d", c, b, a);
else if(a<c&&c<b)
p("\nArranged numbers are: %d %d %d", a, c, b);
else if(b<c&&c<a)
printf("\nArranged numbers are: %d %d %d", b, c, a);
else if(c<a&&a<b)
printf("\nArranged numbers are: %d %d %d", c, a, b);
else if(b<a&&a<c)
printf("\nArranged numbers are: %d %d %d", b, a, c);
else if(c==b&&b>a)
printf("\nArranged numbers are: %d %d %d", a, b, c);
else if(c==b&&b<a)
printf("\nArranged numbers are: %d %d %d", c, b, a);
else if(a==c&&c<b)
printf("\nArranged numbers are: %d %d %d", a, c, b);
else if(b==c&&c<a)
printf("\nArranged numbers are: %d %d %d", b, c, a);
else if(c==a&&a<b)
printf("\nArranged numbers are: %d %d %d", c, a, b);
else if(b==a&&a<c)
printf("\nArranged numbers are: %d %d %d", b, a, c);
else if(b==c&&c<a)
printf("\nArranged numbers are: %d %d %d", b, c, a);
else if(a==b&&b>a)
printf("\nArranged numbers are: %d %d %d", b, c, a);
else if(a==c&&c>b)
printf("\nArranged numbers are: %d %d %d", b, c, a);
else if(a==b&&b>c)
printf("\nArranged numbers are: %d %d %d", c, a, b);
else if(a==b&&b==c)
printf("\nArranged numbers are: %d %d %d", a, a, a);
else printf("\nInvalid input!");
}
else if(asc_desc=='d'||asc_desc=='D')
{
if(c>b&&b>a)
printf("\nArranged numbers are: %d %d %d", c, b, a);
else if(c<b&&b<a)
printf("\nArranged numbers are: %d %d %d", a, b, c);
else if(a<c&&c<b)
printf("\nArranged numbers are: %d %d %d", b, c, a);
else if(b<c&&c<a)
printf("\nArranged numbers are: %d %d %d", a, c, b);
else if(c<a&&a<b)
printf("\nArranged numbers are: %d %d %d", b, a, c);
else if(b<a&&a<c)
printf("\nArranged numbers are: %d %d %d", c, a, b);
else if(c==b&&b>a)
printf("\nArranged numbers are: %d %d %d", c, b, a);
else if(c==b&&b<a)
printf("\nArranged numbers are: %d %d %d", a, b, c);
else if(a==c&&c<b)
printf("\nArranged numbers are: %d %d %d", b, c, a);
else if(b==c&&c<a)
printf("\nArranged numbers are: %d %d %d", a, c, b);
else if(c==a&&a<b)
printf("\nArranged numbers are: %d %d %d", b, a, c);
else if(b==a&&a<c)
printf("\nArranged numbers are: %d %d %d", c, a, b);
else if(b==c&&c<a)
printf("\nArranged numbers are: %d %d %d", a, c, b);
else if(a==b&&b>a)
printf("\nArranged numbers are: %d %d %d", a, c, b);
else if(a==c&&c>b)
printf("\nArranged numbers are: %d %d %d", a, c, b);
else if(a==b&&b>c)
printf("\nArranged numbers are: %d %d %d", b, a, c);
else if(a==b&&b==c)
printf("\nArranged numbers are: %d %d %d", a, a, a);
else printf("\nInvalid input!");
}
else printf("\nInvalid input!");
printf("\n\nDo you want to try again? y/n\n\n");
scanf(" %c", &ans);
system("cls");
}
while(ans=='y'||ans=='Y');
}
else if(prog_num==2)
{
do
{
printf("Enter any numbers. I will stop only if you enter zero.\n");
num=1;
ave=0;
count=0;
sum=0;
for(;num!=0;)
{
printf("\n");
scanf("%d", &num);
count++;
sum=num+sum;
}
count--;
ave=sum/count;
printf("\nThe sum and average of the integers are: %0.2f and %0.2f respectively.", sum, ave);
p("\n\nDo you want to try again? y/n\n\n");
s(" %c", &ans);
system("cls");
}
while(ans=='y'||ans=='Y');
}
else if(prog_num==3)
{
do
{
printf("Please enter a number: ");
scanf(" %d", &a);
p("\n");
for (b = 1; b<=a; b++)
{
product=product*b;
if (b!=a)
{
printf("%d x ", b);
}
else
printf("%d", b);
}
printf("\n\nThe factorial of %d is %.0f", a, product);
printf("\n\nDo you want to try again? y/n\n\n");
scanf(" %s", &ans);
product=1;
system("cls");
}
while(ans=='y'||ans=='Y');
}
else if(prog_num==4)
{
do
{
p("\t\t\t *First 10 Positive Integers*\n\n");
printf("Please enter a number: ");
scanf(" %d", &a);
p("\n\nThe first 10 positive integer from %d is: \n\n", a);
if(a>=0)
{
for (b = 1; b<=10; b++)
{
printf("%d ",a++);
}
}
else if(a<0)
p("1 2 3 4 5 6 7 8 9 10");
printf("\n\nTry Again?(y/n):\t");
scanf(" %s", &ans);
system("cls");
}
while(ans=='y');
}
else if(prog_num=5)
{
}
}
while(ans=='n'||ans=='N');
}
Upvotes: 0
Views: 827
Reputation: 2783
First of all, next time present us a Minimal, Complete, and Verifiable example as @Olaf mentioned.
Your code is so long and hard to read, but replace yours
else if(prog_num=5)
{
}
with
else if(prog_num==5)
{
printf("prog_num is 5, program will exit now.\n");
break; // exit from the loop
}
and add return 0;
at the end of your program (just before last }
brace). In addition to that, text you may see in console is not an error, it means your program has been finished w/o any problems.
You should definitely read about switch statement in C/C++.
Upvotes: 0