梁山伯与茱莉蔻
2019-11-23 20:02
采纳率: 100%
浏览 261

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

输入的第一行为 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 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;
    }

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 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 接着循环

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题