葛成功之路 2019-11-23 20:02 采纳率: 77.8%
浏览 270
已采纳

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

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?