Click here to Skip to main content
14,699,608 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
why is the loops not working ?

i am using an Indefinite for loop for (;;) but but it does not stop looping
so i tride to use while loop and with the while loop when It is
(bra>2)

it still print ("do u want to add more y or n");which i do not want it to do so.
and when ( bra ==1) and it ask for a Y or N it breaks at either Y or N
And how do i call back the the main function i do not want the program to exit. after the break, i want it to go back to the main function'

with the for loop dis is the code
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>

void create_new_stock(void);
void display_stock(void);
void sales(void);
void modify(void);
void Additem(void);
void Viewitems(void);
void Viewcategory(void); 
void Editcategory(void);
void Edititems(void);
void Edit(void);
void Deleteitem(void);
void Deletecategory(void);
void PrintBeeper(void);
void CreateFile(void);
void DeleteFile(void);
void sel();



double 	u_prx = 0.0; 			
double 	total=0.0; 				
double 	G_total=0.0; 			
double 	amut_b=0.0; 			
double 	amut_u=0.0;				
double 	S_prx_Blk=0.0;			
double 	S_prx_u=0.0;			
double 	T_amut_blk=0.0;			
double	T_amut_u =0.0;			
double  qty_sold = 0.0;			
int 	T_qty_bulk =0;			
int 	T_qty_u =0;			
int     G_T_qty_bulk=0;			
int		G_T_qty_u=0;			
int	   	qty_u= 0; 				
int    	qty_left = 0; 			
int    	qty_bulk = 0;			 

char cate[20];				
char iname[20]; 				
char code[6]; 					



void create_new_stock()
{
	int bra;
	char ans;
printf("Enter Category ");
scanf("%s",cate);

printf("How many brands do u want to add?");
scanf("%d",&bra);
for(;;)
{

printf("Enter brand name");
scanf("%s",iname);

printf("Enter Buying price(bulk)");
scanf("%lf",&amut_b);

puts("Enter Quantity in bulk");
scanf("%d",&qty_bulk);

puts("Enter Quantity of items (number of items in a box)");
scanf("%d",&qty_u);

T_qty_u=qty_bulk*qty_u;
T_amut_blk=amut_b/qty_u;

puts("Enter Selling price for(box)");
scanf("%lf",&S_prx_Blk);

puts("Enter selling price for unit");
scanf("%lf",&S_prx_u);

if (bra<=1)

puts("do u want to add more y or n");
scanf("%c",&ans);

if(tolower(ans) == 'n') 			
break;

}
getchar();
}


void display_stock()
{

	
}

void sales()
{

	
	}

void modify()
{

	

}

int main()
{
char sele; // seletion of data

puts(" Welcome to my sales Program");
puts("<1> \t Create a new stock ");
puts("<2> \t Display Stock");
puts("<3> \t Sales");
puts("<4> \t Modify");
puts("<5> \t exit");

puts("Enter selection");
scanf("%c",&sele);


switch (sele)
{
case '1':
create_new_stock();
break;
case '2':
display_stock();
break;
case '3':
sales();
break;
case '4':
modify();
break;
case '5':
exit(1);
break;

	}
return 0;
getchar();
		}


with the while loop this is the code

#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include  <ncurses.h>

void create_new_stock(void);
void display_stock(void);
void sales(void);
void modify(void);
void Additem(void);
void Viewitems(void);
void Viewcategory(void);
void Editcategory(void);
void Edititems(void);
void Edit(void);
void Deleteitem(void);
void Deletecategory(void);
void PrintBeeper(void);
void CreateFile(void);
void DeleteFile(void);
void sel();



double  u_prx = 0.0;
double  total=0.0;
double  G_total=0.0;
double  amut_b=0.0;
double  amut_u=0.0;
double  S_prx_Blk=0.0;
double  S_prx_u=0.0;
double  T_amut_blk=0.0;
double  T_amut_u =0.0;
double  qty_sold = 0.0;
int     T_qty_bulk =0;
int     T_qty_u =0;
int     G_T_qty_bulk=0;
int     G_T_qty_u=0;
int     qty_u= 0;
int     qty_left = 0;
int     qty_bulk = 0;

char cate[20];
char iname[20];
char code[6];
<pre>
void create_new_stock()
{
	int bra;
	char ans;
int a=1;
printf("Enter Category \n");
scanf("%s",cate);
printf("How many brands do u want to add?\n");
scanf("%d",&bra);
while((bra>a)||(bra>=a))
{
printf("Enter brand name\n");
scanf("%s",iname);
printf("Enter Buying price(bulk)\n");
scanf("%lf",&amut_b);
printf("Enter Quantity in bulk\n");
scanf("%d",&qty_bulk);
printf("Enter Quantity of items (number of items in a box)\n");
scanf("%d",&qty_u);
T_qty_u=qty_bulk*qty_u;
T_amut_blk=amut_b/qty_u;
printf("Enter Selling price for(box)\n");
scanf("%lf",&S_prx_Blk);
puts("Enter selling price for unit");
scanf("%lf",&S_prx_u);
a++;
puts("do u want to add more y or n");
scanf("%c",&ans);
if(tolower(ans) =='Y') 			
break;
}

}




	

void display_stock()
{

	
}

void sales()
{

	
	}

void modify()
{

	

}

int main()
{
char sele; // seletion of data

puts(" Welcome to my sales Program");
puts("<1> \t Create a new stock ");
puts("<2> \t Display Stock");
puts("<3> \t Sales");
puts("<4> \t Modify");
puts("<5> \t exit");

puts("Enter selection");
scanf("%c",&sele);


switch (sele)
{
case '1':
create_new_stock();
break;
case '2':
display_stock();
break;
case '3':
sales();
break;
case '4':
modify();
break;
case '5':
exit(1);
break;

	}
return 0;
getchar();
		}
Posted
Comments
Albert Holguin 9-Nov-11 11:16am
   
This is pretty bad code, don't make all your variables globals, that's not a good practice. Also, make use of header files for defining your function prototypes.

1 solution

Brands bra is the number of brands you asked the user they want to create and a is the current count of the created brands, and you want to exit the loop when the user has created the required number so;

while(a <= bra)
{
    //the loop content
    a++;
}
   
Comments
atoivan 9-Nov-11 5:48am
   
thanks very much but it does not allow me to enter Y or N option it skips the scanf() do u have any idea why it does that

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900