#include<stdio.h>
#include<stdlib.h>
int main()
{
int t,k,n,i;
int height[20000];
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&k,&n);
for(i = 0; i < n; i++) scanf("%d",&height[i]);
for(i = 0; i < n; i++) printf("%d\n",height[i]);
}
return 0;
}
输入:
1
3 1
2 5 4
我期待输出为2 2 5 4,但我得到的输出为2 2请帮助
答案 0 :(得分:2)
在您的输入中,您将t
设置为1,将k
设置为3,将 n
设置为1 。所以你的for
之后只执行一个循环。 “5”和“4”甚至没有从输入中扫描。
答案 1 :(得分:0)
仔细阅读您的代码。 输入后:
t= 1
k= 3
n= 1
然后你在n = 1上进行循环,所以它读取一个整数:
height[0] = 2
5和4被省略,
然后打印2。
k未使用...
答案 2 :(得分:0)
#include<stdio.h>
#include<stdlib.h>
int main()
{
int t,k,n,i;
int height[20000];
scanf("%d",&t);
while(t--)
{
scanf("%d %d",&k,&n);
printf("value of k is %d\nvalue of n is %d\n",k,n);
根据您的输入N是1
for(i = 0; i < n; i++)
scanf("%d",&height[i]);
的 **i<n condition is wrong here it wont let more than 1 value to get scanned for n=1**
强> 的
for(i = 0; i < n; i++)
printf("%d\n",height[i]);
}
return 0;
}
答案 3 :(得分:0)
改变你的代码:
while(t--)
{
scanf("%d%d",&k,&n);
for(i = 0; i < k; i++) scanf("%d",&height[i]);
for(i = 0; i < k; i++) printf("%d\n",height[i]);
}
它将按预期工作。 顺便说一句,为什么你只使用n但得到k和n?没有道理。