alwaysmissme
余五阳
采纳率80%
2019-11-23 20:02 阅读 253

请问我的输出为什么会出现这种情况?

5

输入的第一行为 n (0 < n < 1000)n(0 输出为这组数中最大的那个数
#include
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
int m,j,max=0;
scanf("%d\n",&m);
for(j=1;j<=m;j++)
{
int k;
scanf("%d",&k);
if(k>max) max=k;
}
printf("%d\n",max);
}
return 0;
}
我输入3 1 2 3却输出2 非最大值,而且是无限制输出,而不是只输入三个数字

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • 已采纳
    Meisenheimer Meisenheimer 2019-11-23 21:22

    在你的这个程序中n应当是输入的组数,m是每组的数字数,最后的k才是输入的数字。
    输入3 1 2 3后n=3,m=1,即应输入三组数据,第一组数据为一个,是2,第二组数据为3个
    修改如下:
    int main()
    {
    int n;
    scanf("%d", &n);
    int j, max = 0;
    for (j = 1; j <= n; j++)
    {
    int k;
    scanf("%d", &k);
    if (k > max)
    max = k;
    }
    printf("%d\n", max);
    return 0;
    }

    点赞 评论 复制链接分享
  • qq_27183003 ysuwood 2019-11-23 21:23

    输入:1 3 1 2 3 就可以输出3
    你的输入:
    3->n 第1个循环要循环3次
    1->m 第2个循环只循环1次
    2->k 输出2
    3->m 接着循环

    点赞 1 评论 复制链接分享

相关推荐