0unique0 发表于 2022-11-29 12:38:16

根据提示,编写一个程序, 对用户录入的产品信息进行格式化。
下面是我写的

#include<stdio.h>
        int main(void)
        {
      int item,purchase;
      float unit;
          printf("Enter item number:\n");
      scanf("%d",&item);
      printf("Enter unit price:\n");
      scanf("%f",&unit);
      printf("Enter purchase date (mm/dd/yy):\n");
      scanf("%d %d %d",&purchase);                        //这里为什么输入三个%d不行啊   
      printf("Item Unit Purchase\n");
      printf("%d      $ %.2f    %02d%02d%02d",item,unit,purchase) ;       //这里出来的数字和我输入的不同
       return 0;
        }


最后是这样的
Enter item number:
Enter unit price:
Enter purchase date (mm/dd/yy):
Item      Unit   Purchase
385      $ 12.50    12032015

jackz007 发表于 2022-11-29 12:51:46

本帖最后由 jackz007 于 2022-11-29 15:13 编辑

scanf("%d %d %d",&purchase);                        //这里为什么输入三个%d不行啊
      你才写了 3 个 %d,是不是还是感觉有点少???
      不要搞错了,写代码是在 "别人屋檐" 下,可不是在 "父母怀抱" 中,没有人会宠你迁就你,不可以随意撒娇任性,必须老老实实守规矩!!!

weimengnan006 发表于 2022-11-29 17:27:26

scanf("%d %d %d",&purchase);      
输入了3个int,却只有一个参数去接收,肯定会报错,可以再声明两个int的参数去接收剩余的value:
int num2, num3;
scanf("%d %d %d",&purchase, &num2, &num3);      

0unique0 发表于 2022-12-3 10:53:34

weimengnan006 发表于 2022-11-29 17:27
输入了3个int,却只有一个参数去接收,肯定会报错,可以再声明两个int的参数去接收剩余的value:

可以写成
scanf("%d %d %d",&purchase1,&purchase2,&purchase3);
吗?

weimengnan006 发表于 2022-12-8 13:16:56

0unique0 发表于 2022-12-3 10:53
可以写成
scanf("%d %d %d",&purchase1,&purchase2,&purchase3);
吗?

写法没错,但是你要提前声明purchase1,purchase2,purchase3,不然编译器无法识别你这三个参数是什么

我是扬帆起航 发表于 2022-12-8 14:19:20

3个%d要对应3个整形变量与之对应
页: [1]
查看完整版本: