注册 登录
编程论坛 C语言论坛

c语言小白,在线求教

是个狠人 发布于 2020-04-13 15:34, 1488 次点击
输入第一行为一个整数T(1<T<5),后边是T组测试数据,每组测试数据包括两行,第一行为一个正整数,第二行为一组正整数,个数不确定,以-1结束。测试数据保证所有整数均可以用int型存储。
输出为T行,每行对应每组测试数据中第一个数在第二行数中的自大而小排序位置。测试数据保证在第二行数据中存在且只存在一个第一个数。
程序代码:

#include<stdio.h>
int main()
{
    int T,a[100],i,j=0,b,num=1;
    scanf("%d",&T);
    for(i=1;i<=T;i++)
    {
        scanf("%d\n",&b);
        do
        {
            j++;
            scanf("%d",&a[j]);
        }
        while(a[j]!=-1);
        for(j=0;b<a[j];j++)
        {
            num=num+1;
        }
        printf("%d",num);
    }
    return 0;
}
2 回复
#2
是个狠人2020-04-13 15:36
对于上述代码,问题是无论如何输入,num的值出现差错
#3
lin51616782020-04-13 15:44
j没重置 无限加加
所以错了
代码本身逻辑也错
没有处理 从大到小
1