Chronosplus 2022-11-29 23:32 采纳率: 0%
浏览 72

刚学c语言课,求帮看指导

原题:
输入N个学生的C语言程序设计课程成绩,请你设计一个函数来编程找出这些学生的最高分、并列第一的学生数。
函数原型:int search(int x[], int n, int *count);

输入

输入包含两行:
第一行是N(0 < N < 1000)。
第二行是N个整数,代表N个学生的C语言程序设计课程成绩,邻近两数之间用一个空格隔开。

输出

按照题目要求输出最高分和取得最高分的学生数,用一个空格隔开。

输入示例

10
52 95 87 69 78 84 82 95 90 95

输出示例

95 3

数据范围
输入和输出均为int范围的整数,对于100%的数据,0 < N < 1000
我的:

#include <stdio.h>
int x[1000];
int *count=0;
int search(int x[], int n, int *count)
{int i,j,temp;
 for(i=0;i<n;i++)
 {for(j=0;j<n-i;j++)
 if(x[j]<x[j+1])
  {
  temp=x[j];
  x[j]=x[j+1];
  x[j+1]=temp;}
  
 }
 for(i=0;i<n;i++)
 if(x[i]==x[0]){
 *count+=1;}
 return *count;
}
 int main(){
 int N,i;
 
 scanf("%d",&N);
 for(i=0;i<N;i++)
{
 scanf("%d",x[i]);
 search(x,N,count);}
 printf("%d %d",x[0],*count);
 return 0;
 
 }

输出不了结果,求看看哪里出问题

  • 写回答

2条回答 默认 最新

  • qzjhjxj 2022-11-30 12:04
    关注

    修改如下, 供参考:

    #include <stdio.h>
    int x[1000];
    int count = 0;  //int* count = 0; 修改
    int search(int x[], int n, int* count)
    {
        int i, j, max; //temp;修改
        max = x[0];
        for (i = 0; i < n; i++)
        {
            //for (j = 0; j < n - i; j++) 修改
            if (max < x[i])
            {
                max = x[i];
                //temp = x[j];  修改
                //x[j] = x[j + 1];
                //x[j + 1] = temp;
            }
        }
        for (i = 0; i < n; i++)
            if (x[i] == max) {
                (*count) += 1;  //修改
            }
        return max; //return *count;修改
    }
    int main() {
        int N, i, max;
        scanf("%d", &N);
        for (i = 0; i < N; i++)
            //{  修改
            scanf("%d", &x[i]); //scanf("%d", x[i]);修改
        max = search(x, N, &count); //(x, N, *count);修改
        //}  修改
        printf("%d %d", max, count);
        //printf("%d %d", x[0], *count);修改
        return 0;
    }
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 11月29日