#include
#include
#define N 10
//12 33 24 23 55 34 45 33 21 34
int max_value(int arr[], int sec_max)
{
int i;
int max;
int size = N;
max = arr[0];
sec_max = arr[0];
for ( i = 0; i < size; i++)
{
if (max < arr[i])
{
sec_max = max;
max = arr[i];
}
if (sec_max < arr[i] && arr[i] < max)
{
sec_max = arr[i];
}
}
if (max == sec_max)
{
sec_max = arr[1];
for (int i = 1; i < size; i++)
{
if (sec_max < arr[i])
{
sec_max = arr[i];
}
}
}
return max;
}
void main()
{
int a[N];
int i, max, second_max;
printf("please input 10 numbers:\n");
for ( i = 0; i < N; i++)
{
scanf("%d", &a[i]);
}
max = max_value(a, &second_max);
printf("max = %d\n", max);
printf("second_max = %d\n", second_max);
system("pause");
}
运行效果:
system()函数用法:
用法:int system(char*command);
system函数已经被收录在标准c库中,可以直接调用。
程序例:
#include
#include
int main(void)
{
printf("About to spawn and run a DOS command\n");
system("dir");
return 0;
}
又如:system("pause")可以实现冻结屏幕,便于观察程序的执行结果;system("CLS")可以实现清屏操作。而调用color函数可以改变控制台的前景色和背景,具体参数在下面说明。
#include { {
int main()
{
int *p;
int a[10]={0,1,2,3,4,5,6,7,8,9};
int max,max2,maxi;
p=a;
max=p[0];
maxi=0; //记录最大值的位置,当寻找第二大值时,此值作为依据。
int i;
for(i=0;p+i
if(max<*(p+i))
{
max = *(p+i);
maxi = i;
}
}
p=a; //重置指针到数组的开始位置
if(maxi !=0) //要小心第一大值。
{
max2=p[0];
}
else
{
max2=p[1];
}
for(i=0;p+i
if(max2<*(p+i) && maxi !=i) //忽略第一大值
{
max2 = *(p+i);
}
}
printf("max=%d,max2=%d",max,max2);
return 0;
}
int max1,max2;
int p[N],*a;
...... //数组p初始化
a = p;
max1 = max2 = *p; //给max1和max2给一个初值
for(int i=0;i
if(max1<*a)
max1 = *a;
a++;
} //第一次循环获取最大值
a = p; //重新定位指针a到p的首地址
for(int i=0;i
if(max2<*a&&*a!=max1)
max2 = *a;
a++;
} //第二次循环获得次大值
#include
#define N 10
void main()
{
int first,second,a[N],i;
for(i=0;i
first=second=a[0];
for(i=0;i
if(first<*(a+i))
{
second = first;
first = *(a+i);
}
}
printf("%d %d\n",first,second);
}
#define N 10
int main(int argc, char *argv[])
{
int ar[N] = {5,4,8,6,2,1,9,6,3,0};
int max , vicemax, i = 0;
int *p = ar;
max = vicemax = ar[0];
while(i < N)
{
if(*(p+i) > max)
{
vicemax = max;
max = *(p+i);
}
i++;
}
printf("max: %d vicemax: %d\n",max, vicemax);
system("PAUSE");
return 0;
}