作业实在不会了。。。。。

输入:

123456789
123

输出

a=12,b=345,c=123

要求修改以下程序达到要求

#include<stdio.h>

int main()
{   
int a,b,c; 
scanf("%2d%3d",&a,&b);
scanf("%f",&c); 
printf("a=%d,b=%d,c=%d\n",a,b,c);
return 0;
}

为什么下面的代码输出的c=6789呢?

#include<stdio.h>

int main()
{
    int a,b,c;

    scanf("%2d%3d",&a,&b);
    scanf("%d",&c);
    printf("a=%2d,b=%3d,c=%3d",a,b,c);

    return 0;
}

而且我试了像下面这样曲线救国

#include<stdio.h>

int main()
{
    int a,b,c,d;

    scanf("%2d%3d%d",&a,&b,&d);
    scanf("%d",&c);
    printf("a=%2d,b=%3d,c=%3d",a,b,c);

    return 0;
}

虽然达到了要求,但老师说只能在原基础上改???
难道是格式控制符能做到省略掉b=3456789后面的6789?
求大佬指点!!!

#include<stdio.h>

int main()
{
    int a,b,c;
    scanf("%2d%3d",&a,&b);
    while (getchar() != '\n');
    scanf("%d",&c);
    printf("a=%d,b=%d,c=%d\n",a,b,c);
    return 0;
}
#include<stdio.h>

int main()
{
    int a, b, c;
    scanf("%2d%3d%4d", &a, &b, &c);
    scanf("%d", &c);
    printf("a=%d,b=%d,c=%d\n", a, b, c);
    return 0;
}