-4
#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
5
4
但我得到的输出为
2
请帮助

4

4 回答 4

2

在您的输入中,您设置tk1、3 和n1。所以你for的 s 之后只执行一个循环。'5' 和 '4' 甚至没有从输入中扫描。

于 2013-07-19T13:25:12.827 回答
0

更仔细地阅读您的代码。在您输入后:

t= 1
k= 3
n= 1

然后您在 n = 1 上进行循环,因此它读取一个整数:

height[0] = 2

5和4省略,

然后打印 2。

没有使用 k...

于 2013-07-19T13:39:48.753 回答
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 ?这是没有意义的。

于 2013-07-19T14:19:22.317 回答
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;
}
于 2013-07-19T14:02:25.593 回答