2주째 이거 하나에 매달리고있는....
재찬
출력할때 0 이 끼워서 발생하는데...
메뉴선택 2번 할때....메뉴 선택 2번 할때 계산식 출력형태 아무 이상 없이 다 되는데 프로그램 실행만 하면 0 이 저렇게 말성을 피우네요.. ㅠㅠ
지쳐 가네요...질문 내용 :
케이스 2번을 출력을 하면은 수량 3 3 이 들어가야 하는데 0 0 이 들어가서 한칸씩 미뤄졌는데.. 이걸 머가 잘못됬는지
출력 형태가 %d %f %lf 다 해봤는데도 0이 0.000000 으로 바뀔뿐 전혀 나타날 기미가 안보이네요..
출력형태가 잘못된건가요??
밑에는 소스입니다.. 다는 아니구요 일부 입니다.
#includestdio.h
#include string.h
#define NUM 100
struct sell
{
int a,b,volume;
double net,tax,price,sum;
char name[50];
};
int main(void)
{
int i,j,w,a,b;
struct sell p[NUM]={0},tp;
printf(데이터 처리건 건 수를 입력하세요 : );
scanf(%d, &a);
printf(\n);
while(1)
{
printf(------------------------------ \n);
printf( 1. 품목별 판매 실적 입력 \n);
printf( 2. 품목별 판매 보고서 출력 \n);
printf( 3. 금액별 판매 보고서 출력 \n);
printf( 4. 종료 \n);
printf(------------------------------ \n);
printf(\n);
printf(메뉴선택 : );
scanf(%d, &b);
printf(\n\n);
switch(b)
{
case 1:
printf( 품목별 판매 실적 입력 \n);
for(i=0; ia; i++)
{
printf(= 품목명 : );
scanf(%s, p[i].name);
printf(= 가격 : );
scanf(%d, &p[i].price);
printf(= 수량 : );
scanf(%d, &p[i].volume);
printf(\n);
p[i].sum= p[i].price * p[i].volume;
p[i].tax= (p[i].price * p[i].volume)/10.0;
p[i].net= (p[i].price * p[i].volume)-(p[i].price * p[i].volume)/10;
}
printf( 데이터 입력이 완료되었습니다... \n\n);
break;
case 2:
for(i=0; ib-1; i++)
{
for(j=i+1; jb-1; j++)
{
w=strcmp(p[i].name,p[j].name);
if(w0)
{
tp = p[i];
p[i] = p[j];
p[j] = tp;
}
}
}
printf(품목별 판매 보고서 출력 \n);
printf(품목명 \t\t가격 \t수량 \t금액 \t세액 \t순이익 \n);
for(i=0; ia; i++)
{
printf(%s \t\t%d \t%d \t%d \t%d \t%d\n, p[i].name, p[i].price, p[i].volume, p[i].sum, p[i].tax, p[i].net);
}
break;
-
후회중
버블 정렬하시는건가요? 아무튼간에 for루프에서 b가 아니라 a가 아닐까하는 생각이 드네요? b라는 변수는 메뉴선택하는 변수잖아요 a가 입력할 개수이고....