问题描述
给出n个数,找出这n个数的最大值,最小值,和。
第一行为整数n,表示数的个数。
第二行有n个数,为给定的n个数,每个数的绝对值都小于10000。
输出三行,每行一个整数。第一行表示这些数中的最大值,第二行表示这些数中的最小值,第三行表示这些数的和。
5
1 3 -2 4 5
1 3 -2 4 5
5
-2
3
-2
3
数据规模与约定
1 <= n <= 10000。
#include<stdio.h>
int main()
{
int i = 0,j = 0,n = 0;
int a[33][33] = {0};//必须初始化
scanf("%d",&n);
for( i = 0; i < n; i++ )
{
a[i][0] = 1;//让每一行的第一个都为1
for( j = 1; j < i; j++ )//通过上一行的数来计算中间的数
{
a[i][j] = a[i-1][j-1] + a[i-1][j];
}
a[i][i] = 1;//让每一行的最后一个都为1
}
for( i = 0; i < n; i++ )
{
for( j = 0; j < i; j++ )
{
printf("%d",a[i][j]);//依次输出每一行的前i个元素
}
printf("%d\n",a[i][i]);//输出每一行的最后一个元素
}
return 0;
}
关键:先输出第一列和对角线上的1,再利用其它数等于其两肩之和即可;