解题思路:
首先声明了四个函数,依次分别为:赋值函数,最小数最与第一位交换的函数,最大数与最后一位交换的函数,以及打印结果的函数。
赋值函数:首先在主函数中定义一个十位 的数组,再进入赋值函数中,在函数中,用数组指针的方式,作为形参(此处我也不知道这么用是什么道,只知道是传递的数组的首地址),利用for循环结合scanf函数依次赋值。
最小值与第一位交换的函数:首先不能改变数组里面的值,而是先找最小值的大小,并确定在哪一位。在此处利用中间变量temp,把a[0]的值传递给temp,用于循环函数当中去判断,利用第一位数,去与数组中的每一个数进行对比,如果有比temp小的值,就把这一位的数赋值给temp,依次循环判断,直至找到最小的值,并把最小值的“位数”赋值给flag,以记录哪一位是最小的数。 然后就简单了 ,再借助一个中间变量,把最小值与第一位交换就行了。
最大数与最后一位交换的函数:与上类型,只是找出的是最大的值。
最后把整理好的数组的数据打印出来即可。
注意事项:
有很多坑,需要清晰的思路
参考代码:
#include"stdio.h"
void fuzhi(int *a);
void zui_xiao(int *a);
void zui_da(int *a);
void dayin(int *a);
int main()
{
int a[10];
fuzhi(a);
zui_xiao(a);
zui_da(a);
dayin(a);
}
void fuzhi(int *a)
{
for(int i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
}
void zui_xiao(int *a)
{
int temp = a[0];
int temp1;
int flag;
for(int i=0;i<10;i++)
{
if(temp>a[i])
{
temp = a[i];//找到最小值
flag = i;//记录哪一位最小
}
}
//最小值与第一位交换
temp1 = a[0];
a[0] = temp;
a[flag] = temp1;
}
void zui_da(int *a)
{
int temp = a[0];
int temp1;
int flag;
for(int i=0;i<10;i++)
{
if(temp<a[i])
{
temp = a[i];//找到最大值
flag = i;//记录哪一位最大
}
}
//最大值与最后一位交换
temp1 = a[9];
a[9] = temp;
a[flag] = temp1;
}
void dayin(int *a)
{
for(int i=0;i<10;i++)
{
printf("%d ",a[i]);
}
}
0.0分
0 人评分
点我有惊喜!你懂得!浏览:1392 |
C语言训练-列出最简真分数序列* (C语言代码)浏览:543 |
【偶数求和】 (C语言代码)浏览:674 |
C语言程序设计教程(第三版)课后习题8.1 (C语言代码)浏览:1292 |
【计算球体积】 (C语言代码)浏览:1158 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:580 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:692 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:555 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:490 |
小O的乘积 (C++代码)浏览:545 |