首页 > 试题广场 >

最高分与最低分之差

[编程题]最高分与最低分之差
  • 热度指数:26558 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
输入n个成绩,换行输出n个成绩中最高分数和最低分数的差。

输入描述:
两行,第一行为n,表示n个成绩,不会大于10000。

第二行为n个成绩(整数表示,范围0~100),以空格隔开。


输出描述:
一行,输出n个成绩中最高分数和最低分数的差。
示例1

输入

10
98 100 99 97 95 99 98 97 96 100

输出

5
#include <stdio.h>

int main()
{

    int N = 0;
    int max = 0, min = 0;
    scanf("%d", &N);
    int i = 0;
    int a[N];

    while(i < N)
    {
        scanf("%d ", &a[i]);
        if(i == 0)
        {
            max = a[i];
            min = a[i];
        }
        if(max < a[i])
        {
            max = a[i];
        }
        if(min > a[i])
        {
            min = a[i];
        }
        i++;
    }
    printf("%d\n", (max - min));
    return 0;
}
发表于 2024-08-09 17:22:41 回复(0)
#include <stdio.h>

// int main() {
//     //知道成绩范围的写法
//     int max = -1,min = 101,n;
//     int tmp;
//     scanf("%d", &n);

//     //输入n个数,与max min比较
//     while (n--) {
//         scanf("%d", &tmp);
//         if(tmp > max)
//             max = tmp;
        
//         if(tmp < min)
//             min = tmp;
//     }

//     printf("%d", max -min);
//     return 0;
// }

int main() {
    //不知道成绩范围的写法
    int max, min, n;
    int tmp;
    scanf("%d", &n);

    //赋予第一个输入值给最大值和最小值
    scanf("%d", &tmp);
    max = tmp;
    min = tmp;
    //输入n-1个数,与max min比较
    n = n - 1;
    while (n--) {
        scanf("%d", &tmp);
        if(tmp > max)
            max = tmp;
        
        if(tmp < min)
            min = tmp;
    }

    printf("%d", max -min);
    return 0;
}

//这两种写法效率更高,不消耗空间

发表于 2024-06-21 03:29:21 回复(0)
/*思路 : 
输入两行 一行是表示n个成绩
另一行输入成绩
然后进行比较大小
将最大的和最小的分别存下来 然后进行相减
*/

# include <stdio.h>
int main ()

{
    int n = 0;
    scanf("%d",&n);//用户输入多少个成绩

    int arr[n];//将用户输入的成绩都存入数组里面
    int i = 0;
    for(i = 0; i<n; i++)
    {
        scanf("%d",&arr[i]);
    }
    int max = arr[0],min = arr[0];
    //假设最大和最小的成绩都是从下标0开始的
    for(int j = 0; j<n;j++)
    //使用for循环来遍历数据
    {
        if(arr[j]>max)//当数组里面的元素大于max 就进行赋值操作
        {
            max = arr[j];
        }
        if(arr[j]<min)//当数组里面的元素小于min 就进行赋值操作
        {
            min = arr[j];
        }
    }
    printf("%d",max-min);//根据题目 得出相减后的结果
    return 0;
}

发表于 2024-06-09 22:22:22 回复(1)
#include <stdio.h>
int main() {
    int n,i,max=0,min=100,d=0;
    int arr[10000];
    scanf("%d\n", &n);
    for(i=0;i<n;i++)
    {
        scanf("%d ",&arr[i]);    
        if(max<arr[i])
        {
            max=arr[i];
        }
        if(min>arr[i])//我说呢差点就用成了else if😂
        {
            min=arr[i];
        }
    }
    d=max-min;
    printf("%d", d);
    return 0;
}
发表于 2024-06-06 23:38:01 回复(0)
#include <stdio.h>

int main() {
    int n;
    scanf("%d",&n);
    int arr[10000]={0};
    int i;
    int max = 0;
   
    for(i=0;i<n;i++)
    {
        scanf("%d",&arr[i]);
    }
    int min = arr[0];
    for(i=0;i<n;i++)
    {
        if(arr[i]>max)
        max = arr[i];
        if(arr[i]<min)
        min = arr[i];
    }
    printf("%d\n",max-min);
    return 0;
}
编辑于 2024-03-22 20:29:29 回复(0)

利用冒泡排序从小到大排,然后数组的最后一位减去第一位即可
#include <stdio.h>

int main() {
    int n;
    int i,j;
    scanf("%d",&n);
    int arr[n];
//这个for循环接收输入的数据
    for(i=0;i<n;i++){
        scanf("%d",&arr[i]);
    }
//对数组中输入的数据从小到大进行冒泡排序
    for(i=0;i<n-1;i++){
        int temp;
        for(j=i+1;j<n;j++){
            if(arr[i]>arr[j]){
                temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
            }
        }
    }
//数组中最后的一位减去第一位
    printf("%d",arr[n-1]-arr[0]);
    return 0;
}

发表于 2024-03-22 13:22:04 回复(0)
#include <stdio.h>

int main()
{
    int n, performance;
    int max = 0;
    int min = 101;

    scanf("%d", &n);
    for(int i = 0; i < n; i++)//有n个成绩,比较n次
    {
        scanf("%d", &performance);//每次输入一个成绩并比较
        if(performance > max)
        {
            max = performance;
        }
        if(performance < min)
        {
            min = performance;
        }
    }

    printf("%d", (max - min));//求差并打印
    return 0;
}
编辑于 2024-03-01 14:15:05 回复(0)
#include<stdio.h>
int main()
{
    int n=0;
    scanf("%d",&n);
    int arr[n];
    int i=0;
    for(i=0;i<n;i++)
    {
        scanf("%d",&arr[i]);
    }
    int max=arr[0];
    for(i=1;i<n;i++)
    {
        if(arr[i]>max)
        max=arr[i];
    }
    int min=arr[0];
    for(i=1;i<n;i++)
    {
        if(arr[i]<min)
        min=arr[i];
    }
    printf("%d\n",max-min);
    return 0;
}

发表于 2024-01-14 17:51:12 回复(0)

    
请问哪里有问题?
#include <stdio.h>

int main() {
    int n,x=0;
    scanf("%d",&n);
    int sum [100]={0};
            int max=0,min=100;

    for(int i=0;i<=n;i++){
        scanf("%d ",&sum[i]);
         if(sum[i]<min)min=sum[i];
        if(sum[i]>max) max=sum[i];
    }
    printf("%d",max-min);
    return 0;
}

发表于 2023-11-24 16:44:59 回复(1)
#include <stdio.h>

int main()
{
    int n = 0;
    scanf("%d",&n);
    int sum = 0;
    int arr[1000];
    for(int i =0;i<n;i++)
    {
        scanf("%d",&arr[i]);
    }
    int min = arr[0];
    int max = arr[0];
    for(int i = 0;i<n;i++)
    {
        if(max<arr[i])
        {
            max=arr[i];
        }
        if(min>arr[i])
        {
            min=arr[i];
        }
    }
    printf("%d",max-min);
    return 0;
}

发表于 2023-11-15 22:02:39 回复(0)
int main()
{
    int i = 0;
    int max = 0;
    int min = 100;
   
    int a = 0;
    scanf("%d",&a);
    int arr[10000]={0};
    for(i=0;i<a;i++)
    {
        scanf("%d",&arr[i]);
    }
    for(i=0;i<a;i++)
    { if(arr[i]>max)
     max=arr[i];
     if(arr[i]<min)
     min=arr[i];
    }
     printf("%d",max-min);
    return 0;
}
发表于 2023-10-21 10:20:17 回复(0)
#include <stdio.h>
int main()
{
    int n=0;
    scanf("%d",&n);//n个成绩
    int arr[n];
    int i=0;
    for(i=0;i<n;i++)
    {
        scanf("%d ",&arr[i]);//输入n个成绩
    }
    //找最大值
    int max=arr[0];
    for(i=0;i<n;i++)
    {
       if(max<arr[i])//遍历整个数组
       max=arr[i];
    }
    //找最小值
    int min=arr[0];
    for(i=0;i<n;i++)
    {
       if(min>arr[i])
       min=arr[i];
    }
    int poor=max-min;
    printf("%d",poor);
    return 0;
}
发表于 2023-07-24 17:58:36 回复(0)
输入的时候直接比
int main()
{
    int n = 0;
    scanf("%d\n", &n);
    int arr[n];
    int i = 0;
    int max = 0;
    int min = 100;
    for (i = 0; i < n; i++)
    {
        scanf("%d", &arr[i]);
        if (arr[i] > max)
            max = arr[i];
        if (arr[i] < min)
            min = arr[i];
    }
    printf("%d", max - min);
    return 0;
}
发表于 2023-06-14 10:44:27 回复(0)
//BC95 输入n个成绩,换行输出n个成绩中最高分数和最低分数的差。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int cmp_int(const void *e1, const void *e2) {
	return *(int *)e1 - *(int *)e2;
}

int main() {
	int N;
	scanf("%d", &N);
	int i = 0, arr[N];
	for (i = 0; i < N; i++) {
		scanf("%d", &arr[i]);
	}

	int sz = sizeof(arr) / sizeof(arr[0]);
	qsort(arr, sz, sizeof(arr[0]), cmp_int);
	int *p = &arr[sizeof(arr) / sizeof(arr[0]) - 1];//利用指针指向数组最后一个值
	printf("%d", *p - arr[0]);
	printf("\n");




	return 0;
}

发表于 2023-05-21 19:48:57 回复(0)
#include<stdio.h>

int main(void)
{
    int max=0,min=100;
    int score;
    getchar();
    getchar();
    while(scanf("%d",&score)!=EOF)
    {
        if(score<min)
            min=score;
        if(score>max)
            max=score;
    }
    printf("%d",max-min);
    return 0;
}

发表于 2023-04-28 15:57:15 回复(0)
#include <stdio.h>

int main() {
    int n = 0;
    int min, max;
    scanf("%d", &n);
    int arr[n];
    for (int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }
    min = max = arr[0];
    for (int i = 0; i < n; i++) {
        if (arr[i] < min) min = arr[i];
        if (arr[i] > max) max = arr[i];
    }
    printf("%d\n", max - min);
    return 0;
}

发表于 2023-03-20 19:19:55 回复(0)
#include <stdio.h>

int main()
{
    int n = 0;
    int max = 0;
    int min = 100000;
    scanf("%d",&n);
    while(n--)
    {
        int tmp = 0;
        scanf("%d",&tmp);
        max = tmp>max?tmp:max;//最大
        min = tmp<min?tmp:min;//最小
    }
    printf("%d",max-min);
    return 0;
}


发表于 2023-03-14 19:26:26 回复(0)
#include <stdio.h>
void bubbleSort(int arr[], int len);
int main() {
    int n;
    while (scanf("%d", &n) != EOF) {
        int arr[n];
        for (int i = 0; i < n; i++) {
            scanf("%d", &arr[i]);
        }
        bubbleSort(arr, n);
        printf("%d\n", arr[n - 1] - arr[0]);
    }
    return 0;
}

void bubbleSort(int arr[], int len) {
    int temp = 0;
    for (int i = 0; i < len - 1; i++) {
        for (int j = 0; j < len - 1 - i; j++) {
            if (arr[j] > arr[j + 1]) {
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }



}
发表于 2023-03-03 11:24:28 回复(0)
看看你脑子能不能转过来
#include <stdio.h>
int main()
{
    int n,i,max=100,min=0;
    scanf("%d",&n);
    int a[n];
    for(i=0;i<n;i++){
        scanf("%d",&a[i]);
        if(a[i]<=max){
            max=a[i];
        }
        if(a[i]>=min){
            min=a[i];
        }
    }
    printf("%d",min-max);
    return 0;
}


发表于 2022-08-21 23:09:36 回复(1)