Excelsior Li 2022-09-17 18:15 采纳率: 93.9%
浏览 180
已结题

c程序入门基础pta遇到疑惑

几个问题:

  1. 【若变量定义为int x, y; ,则x + y = 22是符合C语言语法的表达式。】为什么错
  2. ret是什么东西
  3. 【 printf("%04d-%02d-%02d",year,month,day)】d前的04是什么意思
  4. 【编程】
    逆序三位数
    程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。

输入格式:
每个测试是一个3位的正整数。

输出格式:
输出按位逆序的数。

我的代码是:

#include<stdio.h>
int main(void)
{
    int x,a,b,c;
    scanf("%d",&x);
    a=x/100;
    b=x/10%10;
    c=x%10;

     if (c!=0)
    {
     printf("%d%d%d",c,b,a);
    }
    else if(c==0&&b==0)
    {
    printf("%d",a);    
    }
    else if(c==0&&b!=0)
    {
    printf("%d%d",b,a);
    }   
    return 0;

我的疑问是:为什么 scanf("%d",&x)不可以写成


scanf("%d%d%d",&a,&b,&c)
  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2022-09-17 18:19
    关注

    每个测试是一个3位的正整数。
    如果写成scanf("%d%d%d",&a,&b,&c),那么这个正整数会被a接收掉的。b和c还会等着你输入
    反之你可以将3位正整数看作三个字符
    char a,b,c;
    scanf("%c%c%c",&a,&b,&c);这样a,b,c就是三个数字字符了。
    分别减去'0',就是拆分出来的三个数字

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 9月25日
  • 已采纳回答 9月17日
  • 创建了问题 9月17日

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog