资源描述
数组应用二(最大值最小值问题)随堂练习
算法:
回忆:穷举法步骤
(1)
(2)
例:求出一组100个数据中的最大值和最小值
#include <stdio.h>
main()
{
int i,a[100],max,min;
for(i=0;i<100;i++)
scanf(“%d”,&a[i]);
for(i= ;i<100;i++)
{
}
printf(“\n %d,%d”,max,min);
}
拓展1:如何找最大值最小值的位置?
#include <stdio.h>
main()
{
int i,a[100],max,min;
for(i=0;i<100;i++)
scanf(“%d”,&a[i]);
for(i=1;i<100;i++)
{
}
printf(“%d,%d”,max,min);
}
拓展2:字符型的一维数组呢?
#include <stdio.h>
main()
{
int i,max,min;
max=0; min=0;
for(i=1;i<100;i++)
{
if(a[i]>a[max]) max=i;
if(a[i]<a[min]) min=i;
}
printf(“\n %d,%d”,max,min);
}
拓展3:求二维数组的最大值以及行下标、列下标。
3
2
10
-9
6
-1
row ——最大值的行下标
col ——最大值的列下标
a[row][col] ——最大值
#include <stdio.h>
main( )
{
int i,j,row,col;
int a[3][2]={3,2,10,-9,6,-1};
***************program***************
*****************end******************
printf("max=a[%d][%d]=%d\n",
row,col,a[row][col] );
}
拓展4:有一个5×5的数组,求每一行的最大值和最小值。
#include <stdio.h>
main( )
{
int a[5][5],max[5],min[5];
int i,j;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
scanf(“%d”,&a[i][j]);
***************program***************
*****************end******************
for(i=0;i<5;i++)
printf(“%d\t”,max[i]);
}
拓展5:从键盘输入10个字符串,找出这10个字符串中的最大字符和最小字符
#include <stdio.h>
main( )
{
char ch[10][10], ;
int i;
for(i=0;i<10;i++)
gets(“%s”, );
for(i=0;i<10;i++)
{
***************program***************
*****************end******************
}
puts(max);puts(min);
}
展开阅读全文