n-1位数
时间限制:3000 ms | 内存限制:65535 KB
难度:1
输入
第一行为M,表示测试数据组数。
接下来M行,每行包含一个测试数据。
输出
输出M行,每行为对应行的n-1位数(忽略前缀0)。如果除了最高位外,其余位都为0,则输出0。
样例输入
4 1023 5923 923 1000
样例输出
23 923 23 0
来源
上传者
描述
已知w是一个大于10但不大于1000000的无符号整数,若w是n(n≥2)位的整数,则求出w的后n-1位的数。
我的代码:
#include <stdio.h>
int main (void)
{
int n,w,i,m,b,top=-1;
int a[100000];
scanf("%d",&m);
while(m--)
{
b=0;
scanf("%d",&n);
while(n/10)
{
a[++top]=n%10;
n=n/10;
}
for(;top>=0;top--)
if(a[top]!=0||b||top==0)
{
printf("%d",a[top]);
b=1;
}
printf("\n");
}
}
优秀代码:
#include <stdio.h>
int main()
{
int n,m;
scanf("%d",&n);
while(n--)
{
scanf("\n%*c%d",&m);
printf("%d\n",m);
}
}
这道题就属于知识漏洞了,因为不知道 %*c指跳过某一输入内容,使下一个输入内容复制到紧接着的变量中 这一知识点,
本来一个格式控制符就可搞定的问题,让我搞得很复杂,真叫人头大。。。