m0_51577686 2020-11-21 15:07 采纳率: 0%
浏览 61

麻烦大佬帮忙看看萌新写的这个程序,运行后出黑框了,但是输入数据后无输出,请问是怎么回事?

题目要求如下:

用选择法对N个学生的成绩按从大到小的顺序排序,N个学生的成绩整数用scanf 输入,输入的成绩在[0,100]之间。排序完成后,输入一个成绩,要求用逐个比较查找的方式找出该成绩是该组中第几个元素的值(即第几名)。如果该成绩不在数组中,则输出“no this score!”。 要求: 1、把排序算法写成函数形式,在主函数中输入N个数据,然后调用排序函数排序。 2、在排序过程中尽量减少数据的交换和移动。 3、把查找算法写成函数形式,在主函数中输入1个数据,然后调用查找函数查找

我的代码如下:

#include<stdio.h>
void arrange(int arr[],int n)
{
    int i,j;
    for(i=0;i<n;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if(arr[i]<arr[j])
                arr[i]=arr[j];
        }
    }
}
void search(int arr[],int input,int n)
{
    int i;
    for(i=0;i<n;i++)
    {
        if(input==arr[i])
        {
            printf("%d\n",i+1);
            break;
        }
    }
    if(i==n)
        printf("no this score!\n");
}
int main()
{
    int i=0,n,score[100],j,m;
    scanf("%d",&n);
    while(i<n)
        scanf("%d",score);
        i++;
    arrange(score,n);
    for(j=0;j<n;j++)
    {
        if(j==n-1)
            printf("%d\n",score[j]);
        else
            printf("%d ",score[j]);
    }
    scanf("%d",&m);
    search(score,m,n);

    return 0;
}
  • 写回答

1条回答 默认 最新

  • paldier 2020-11-21 19:07
    关注
        while(i<n)
            scanf("%d",score);
            i++;

    你的大括号呢,而且你直接给整个数组赋值?

    你的循环呢,你数组里的元素赋值过程呢,退出赋值过程呢

    给你个思路吧

    开始循环->输入->给数组元素赋值->退出命令->退出循环->开始循环->排序->退出循环->开始循环->输入->查找->输出->?等待退出命令或输入

    评论

报告相同问题?

悬赏问题

  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥20 Python安装cvxpy库出问题
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥15 python天天向上类似问题,但没有清零
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题