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

考题求解

HehaozheLss 发布于 2022-04-01 00:39, 2936 次点击
最大值最小值
题目描述
给定一个长度为 n 的序列 {an},请你求出该序列的最小值和最大值。

输入格式
第一行一个整数 n,代表序列的长度。

第二行有 n 个整数,表示序列 {an}。

输出格式
第一行输出最大值,第二行输出最小值。

样例数据
样例输入#1
5
1 8 3 6 -5
样例输出#1
8
-5
数据范围
对于 100%​​ 的数据,有 1≤n≤105​​,|ai|≤109​。

我的代码如下,但不知错误在哪,请老师们帮忙解决!
#include <stdio.h>
int main()
{
long arr[100], n, i, max, min;
printf("");
scanf("%d", &n);
for (i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
max = min = arr[0];
for (i = 0; i < n; i++)
{
if (max < arr[i])
{
max = arr[i];
}
else if (min > arr[i])
{
min = arr[i];
}
}
printf("%d\n",max);
printf("%d\n",min);
return 0;
}
14 回复
#2
rjsp2022-04-01 08:23
long arr[100]
你这个100哪来的?你把题目中能推导出100的话句贴出来我看看。

btw: 根本就不需要保存这n个数
#3
古1232022-04-01 10:12
回复 楼主 HehaozheLss
scanf对于long应该是%ld
#4
古1232022-04-01 10:32
回复 2楼 rjsp
大佬别生气哦,估计是学的谭浩强C。现在的第五版在140面直接说int a[n]不合法
我学的时候也是定义像100,1000,1024之类的,跟程序完全没有关系。
#5
HehaozheLss2022-04-01 12:13
回复 2楼 rjsp
帮我改改吧,我才学
#6
HehaozheLss2022-04-01 12:14
回复 4楼 古123
帮我改改吧,我初学
#7
HehaozheLss2022-04-02 01:08
回复 2楼 rjsp
我终于明白老师说的错误在哪了,谢谢老师!
#8
cheetah2022-04-02 01:20
程序没问题吧,反正我这里运行正确
#9
rjsp2022-04-02 15:47
程序代码:
#include <stdio.h>
#include <limits.h>

int main( void )
{
    unsigned n;
    scanf( "%u", &n );

    int minval=INT_MAX, maxval=INT_MIN;
    while( n-- )
    {
        int val;
        scanf( "%d", &val );

        if( minval > val )
            minval = val;
        if( maxval < val )
            maxval = val;
    }

    printf( "%d\n%d\n", maxval, minval );
}
#10
HehaozheLss2022-04-03 00:54
回复 9楼 rjsp
老师,能帮忙再看一题错误在哪里吗?
判断质数(单)
题目描述
给定一个正整数n,请你判断n是不是质数,如果是,输出Yes;否则输出No。

输入格式
输入一个正整数n

输出格式
符合题目要求的输出(注意大小写)

样例数据
样例输入1
5
样例输出1
Yes
样例输入2
841
样例输出2
No
数据范围
对于100%的数据,1<n≤109
提示
质数是因子为1和本身, 如果数n不是素数,则还有其他因子,其中的因子,假如为a,b.其中必有一个大于或等于sqrt(n) ,一个小于或等于sqrt(n)

注:使用sqrt函数需要导入cmath库

#include<iostream>
using namespace std;

int main(){
    int n,i;
    cin>>n;
    int flag=1;
    for(int i=2;i<n;i++){
        if(n%i==0){
            flag=0;
            break;
        }
    }
    if(flag){cout<<"Yes";
    }
        
   
    else{cout<<"No";
    }
    return 0;
}

[此贴子已经被作者于2022-4-3 00:57编辑过]

#11
rjsp2022-04-03 09:38
回复 10楼 HehaozheLss
你这代码,把 0 和 1 也作为质数?

另外,你的代码不符合题目要求,题目要求只判断到 sqrt(n) 就行
#12
HehaozheLss2022-04-03 16:26
回复 11楼 rjsp
明白了,老师!谢谢!
老师这两题怎么做呢?
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2022-4-3 16:37编辑过]

#13
rjsp2022-04-03 19:12
回复 12楼 HehaozheLss
第一题,怎么连个输入输出样例都没有,我也不知道它输入的是“hh mm ss”,还是“hh:mm:ss”。

假设发车时间是 a小时b分钟c秒,运行时间是 d小时e分钟f秒
方法一:
    结束秒 = (c+f)%60
    进位 = (c+f)/60
    结束分 = (b+e+进位)%60
    进位 = (b+e+进位)/60
    结束时 = (a+d+进位)%24
方法二: 两个都转换成秒
    t = (a*3600 + b*60 + c) + (d*3600 + e*60 + f)
    结束秒 = t%60
    结束分 = t/60%60
    结束分 = t/3600%24

第二题,我竟然看不懂题目!研究许久后,我在网上搜了一下
https://
送了一口气,原来不是我有阅读障碍的病,是作者语言表达能力还在婴儿阶段。
#14
qky5102212022-04-05 02:17
前后数据类型,有点小问题。

程序应该能够完成功能吧!
#15
qky5102212022-04-05 02:27
程序正确
1