题目:输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写三个函数; ①输入10个数;②进行处理;③输出10个数。
分析:1,输入10个整数,并实现各个整数的交换,要用到数组(arr)。连续输入10个整数需要循环,用for语句即可。
2,找出数组中的最大值与最小值,可以先假设数组首元素为最大和最小值,即arr[0]。再用该值与数组中的一 一比较,记下最大和最小值的坐标。
3,用一个参数将数组中的数值调换过来,具体见下列代码。
4,用循环语句输出数组中的每个元素
参考代码:
#include<stdio.h>
int input(int arr[])//数组中元素的输入
{
for (int i = 0; i < 10; i++)
{
scanf_s("%d", &arr[i]);
}
return 0;
}
int mark(int arr[])//进行处理
{
int max = arr[0], min = arr[0];//将最大值和最小值设为首元素
int s = 0, m = 0;
int temp, temp2;
for (int j = 1; j < 10; j++)//j从1开始,后面的元素与首元素arr[0]依次比较
{
if (arr[j] > max)
{
max = arr[j];//将最大值换成找到的数组元素
s = j;//记下该元素的坐标
}
}
temp = arr[s];//使用temp将最大值和最后一位数进行调换
arr[s] = arr[9];
arr[9] = temp;
for (int j = 1; j < 10; j++)//找最小值
{
if (arr[j] < min)
{
min = arr[j];//将最小值换成找到的数组元素
m = j;////记下该元素的坐标
}
}
temp2 = arr[m];//使用temp2将最小值和第一位数进行调换
arr[m] = arr[0];
arr[0] = temp2;
return 0;
}
void output(int arr[])//数组元素的输出
{
for (int m = 0; m < 10; m++)
{
printf("%d ", arr[m]);
}
}
int main(void)
{
int arr[10] = { 0 };
input(arr);//输入
mark(arr);//进行处理
output(arr);//输出
return 0;
}
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复