scanf("%2d%*3d%2d",&a,&b)然后输入123456789 问a,b分别是什么,b是67还是89或者说是0
时间: 2024-05-25 14:09:58 浏览: 51
根据 scanf 中的格式化字符串 "%2d%*3d%2d",可以解析输入的字符串 "123456789",其解析规则如下:
- %2d:表示读取并解析两位整数,即读取 "12" 并将其解析为整数 12,存储到变量 a 中。
- %*3d:表示读取并忽略三位整数,即读取 "345",但不将其解析为整数,也不存储到任何变量中。
- %2d:表示读取并解析两位整数,即读取 "67" 并将其解析为整数 67,存储到变量 b 中。
因此,最终结果是 a=12,b=67。
相关问题
scanf("%2d%*3d%2d",&a,&b)然后输入123456789 问a,b分别是啥
根据输入格式字符串,"%2d%*3d%2d",我们可以将输入的123456789按照以下方式进行解析:
- "%2d" 表示读入两个数字,因此第一个数字为12,读入后 a 的值为 12。
- "%*3d" 中的 * 表示跳过读入,不对应任何变量,因此跳过 3 个数字,也就是跳过 345,不对应任何变量。
- "%2d" 表示读入两个数字,因此最后一个数字为89,读入后 b 的值为 89。
因此,a 的值为 12,b 的值为 89。
scanf("%2d%*3d%2d",&a,&b)然后输入123456789 问a,b分别是什么,b为什么是0
根据 scanf 函数的格式字符串,"%2d%*3d%2d" 可以解析如下:
- %2d:读取两个数字并将它们存储在变量 a 中。
- %*3d:读取三个数字,但是使用 * 忽略它们,因此不会存储它们。
- %2d:读取两个数字并将它们存储在变量 b 中。
因此,对于输入 "123456789",a 的值应该是 12,b 的值应该是 0。
具体来说,scanf 函数在读取字符串 "123456789" 时,首先会读取两个数字 "12" 并将它们存储在变量 a 中,然后会读取三个数字 "345",但由于使用了 * 忽略,因此这三个数字不会被存储在任何变量中。最后,scanf 函数会读取两个数字 "67" 并将它们存储在变量 b 中。由于输入的数字不够,因此 b 的值被初始化为 0,即 b 的值为 "00"。
阅读全文