0

これは、バイクの販売に関する配送情報をユーザーに入力するように求めるプログラムです。最後に、自転車の注文数と総コストを印刷すると、数が台無しになります。以前に入力した金額がメモリに残っているようです。これを修正するにはどうすればよいですか?それが問題でないなら、私はそう言われても構わないでしょう:)

#include <stdio.h>
#include <math.h>
//structure
typedef struct
{char cust_name[25];
 char add_one[20];
 char add_two[20];
 }ORDER;

 ORDER order;

int main(void){
fflush(stdin);
system ( "clear" );

 //initialize variables
 double number_ordered = 0;
 double price;
 char bike;
 char risky;
 double m = 359.95;
 double s = 279.95;
    //inputs for order
    printf("Enter Customer Information\n");
    printf("Customer Name: ");
        scanf(" %[^\n]s", &order.cust_name);

    printf("\nEnter Street Address: ");
        scanf(" %[^\n]s", &order.add_one);

    printf("\nEnter City, State, and ZIP: ");
        scanf(" %[^\n]s", &order.add_two);

    printf("\nHow Many Bicycles Are Ordered: ");
        scanf(" %d", &number_ordered);

    printf("\nWhat Type Of Bike Is Ordered\n  M Mountain Bike \n  S Street Bike");
   printf("\nChoose One (M or S): ");
       scanf(" %c", &bike);

    printf("\nIs The Customer Risky (Y/N): ");
        scanf(" %c", &risky);

    system ( "clear" );

    //print order
    printf("\n**********Shipping Instructions**********");
    printf("\nTo: %s\n    %s\n    %s", order.cust_name, order.add_one, order.add_two);

    if (bike == 'M' || bike == 'm')
        printf("\n\nShip: %d Mountain Bikes", number_ordered);
    else 
        printf("\n\nShip: %d Street Bikes", number_ordered);

    if (bike == 'M' || bike == 'm')
        price = number_ordered * m;
    else
        price = number_ordered * s;

    if (risky == 'Y' || risky == 'y')
        printf("\nBy Freight, COD %d\n", price);
    else
        printf("\nBy Freight, And Bill The Customer %d\n", price);


        printf("*****************************************\n");
        return 0;
        }
4

2 に答える 2

2

を使用して、sであるnumber_orderedとを印刷しています。整数型専用です。toまたはdoublesを使用します。pricedouble%d%d%lfprintfscanf

于 2012-09-27T03:43:17.007 に答える
0

scanfとprintfの両方の形式が間違っているため、値を正しく読み取ったり書き込んだりしていません。

于 2012-09-27T03:50:49.960 に答える