题目 解决代码及点评 /* 输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。 写三个函数:①输入10个数;②进行处理;③输出10个数。 */
题目
解决代码及点评
/*输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。
写三个函数:①输入10个数;②进行处理;③输出10个数。
*/
int a[10];
void f721(int *a)//输入10个数
{
for (int i=0;i<10;i++)
{
a[i]=rand()%100;
printf("%d\t",a[i]);
}
}
void f722(int *pmax,int *pmin,int *a,int *p1,int *p2)//进行处理
{
for (int i=0;i<10;i++)
{
if (*pmin>a[i])
{
*pmin=a[i];
*p1=i;
}
if (*pmax<a[i])
{
*pmax=a[i];
*p2=i;
}
}
//最小数和第一个数交换
a[0]=a[0]+a[*p1];
a[*p1]=a[0]-a[*p1];
a[0]=a[0]-a[*p1];
//最大数和最后一个数交换
a[9]=a[9]+a[*p2];
a[*p2]=a[9]-a[*p2];
a[9]=a[9]-a[*p2];
}
void f723(int *a)
{
for (int i=0;i<10;i++)//输出新的数
{
printf("%d\t",a[i]);
}
}
void main()
{
f721(a);
int *pmax=(int *)malloc(sizeof(int)),*pmin=(int *)malloc(sizeof(int));
*pmin=a[0];
*pmax=a[0];
int kmin=0,kmax=0;//记录最大数和最小数de下标
int *p1=&kmin,*p2=&kmax;
f722(pmax,pmin,a,p1,p2);
printf("kmin=%d,kmax=%d\n",kmin,kmax);
f723(a);
free(pmax);
free(pmin);
system("pause");
}
代码编译以及运行
由于资源上传太多,资源频道经常被锁定无法上传资源,同学们可以打开VS2013自己创建工程,步骤如下:
1)新建工程
2)选择工程
3)创建完工程如下图:
4)增加文件,右键点击项目
5)在弹出菜单里做以下选择
6)添加文件
7)拷贝代码与运行