输入n个整数,存于n元整型数组,然后求数组元素中的最大值和第二大值,输出最大值和第二大值。要求程序在运行时,首先从键盘输入整数的数目。
#include<stdio.h>
#include<stdlib.h>
int main()
{
int n,*q1,*q2,*p,*q;
printf("input n = ");
scanf("%d",&n);
if(n<2)
{
printf("n shoule be greater than 2.\n");
return;
}
p = (int *)malloc(n*sizeof(int));
if(p==NULL)
{
printf("not enough memory.\n");
return;
}
printf("input %d integers to create array p.\n",n);
for(q = p;q<p+n;q++)scanf("%d",q);
q1 = p;q2 = p+1;
if(*q1<*q2){q = q1;q1 = q2;q2 = q;}
for(q = p+2;q<p+n;q++)
{
if(*q>*q1)
{
q2 = q1;
q1 = q;
}
else if(*q>*q2)q2 = q;
}
printf("max1 = %d,max2 = %d\n",*q1,*q2);
free((void *)p);
}