题目:输入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.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论