1、C++
#include <iostream>
using namespace std;
int main(){
int n,l;
cin>>n;
cin>>l;
int sum=l,max=l,min=l;
for(int i=0;i<n-1;i++){
cin>>l;
if(l>max)max=l;
if(l<min)min=l;
sum+=l;
}
cout<<max<<endl<<min<<endl<<sum;
return 0;
}
2、C 正确
#include <stdio.h>
int main()
{
int n,i,max,min;
int sum=0;
int a[10000];
scanf("%d\n",&n);
//输入
for(i=1;i<=n;i++)
{
a[i]=a[n];
scanf("%d",&a[i]);
sum+=a[i];//求和
}
//比大小
max=a[1];
min=a[1];
for(i=1;i<=n;i++)
{
if(a[i]>max)
{
max=a[i];
}
}
for(i=1;i<=n;i++)
{
if(a[i]<min)
{
min=a[i];
}
}
printf("%d\n",max);
printf("%d\n",min);
printf("%d\n",sum);
return 0;
}
3、我的(C)错误
#include <stdio.h>
void quicksort(int arr[], int low, int high)
{
int first = low; //第一个元素的下标
int last = high; //最后一个元素的下标
int key = arr[first];
if(low >= high)
return;
while(first < last) //实现多次交换,使key去到它应在的位置
{
while(first < last && arr[last] > key) //实现一次交换
{
last--;
}
arr[first] = arr[last];
while(first < last && arr[first] < key)
{
first++;
}
arr[last] = arr[first];
}
arr[first] = key;
quickSort(arr, low, first-1); //此first不是first,是key应在的位置
quickSort(arr, first+1, high);
}
int sum(int a[],int n){
int sum = 0;
int i;
for(i = 0; i < n; i++)
sum += a[i];
return sum;
}
int main(){
int n,i;
int a[n];
scanf("%d",&n);
for(i = 0; i < n; i++)
scanf("%d",&a[i]);
quicksort(a,0,n-1);
printf("%d\n", a[0]);
printf("%d\n", a[n-1]);
printf("%d",sum(a,n));
return 0;
}
思路:通过快速排序算法对数组a从小到大排序,取出它的下标为0的元素为最小值,下标为n-1的元素为最大值
测评结果:
因为我的快排函数不支持负数。。。
注意:
当遇到报错
一定要考虑自己的函数名称有没有写错