我是靠谱客的博主 标致山水,最近开发中收集的这篇文章主要介绍C语言10.16,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目描述

输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。要求用3个函数实现,分别为输入10个数、进行处理、输出10个数。要求使用指针的方法进行处理。

输入

用空格隔开的10个整数。

输出

输出进行题目描述操作之后的10个整数,每个整数之后输出一个空格。
请注意行尾输出换行。

样例输入

1 5 2 4 9 0 3 8 7 6

样例输出

0 5 2 4 6 1 3 8 7 9

代码

#include <stdio.h>
int a[10];
//输入函数
void input(int* p) {
for(; p < a+10; p++) {
scanf("%d", p);
}
}
//输出函数
void output(int* q) {
for(; q < a+10; q++) {
printf("%d ", *q);
}
}
//数组处理
void swap(int* k) {
int min=*k, max=*k;
for(; k < a+10; k++) { // 遍历数组
if(min > *k) { //找最小值
min = *k;
}
if(max < *k) { //找最大值
max = *k;
}
}
for(k=a; k < a+10; k++) {
if(min == *k) { //找到最小值的位置
int temp = *k; //交换
*k = a[0];
a[0] = temp;
}
if(max == *k) { //找到最大值的位置
int temp = *k; //交换
*k = a[9];
a[9] = temp;
}
}
}
int main() {
input(a);
swap(a);
output(a);
return 0;
}

结果:
在这里插入图片描述
上面这种方式处理数组的时候使用了两个 for 循环语句,我们可以再将它简化一下变成一个 for 循环语句:

#include <stdio.h>
int a[10];
void input(int* p) {
for(; p < a+10; p++) {
scanf("%d", p);
}
}
void output(int* q) {
for(; q < a+10; q++) {
printf("%d ", *q);
}
}
void swap(int* k) {
int min=*k, max=*k;
int i, m, n; //i为循环变量,m和n
for(i = 0; k < a+10; i++,k++) {
if(min > *k) {
min = *k;
m = i;
}
if(max < *k) {
max = *k;
n = i;
}
}
k = a;
int temp = *(k+m);
*(k+m) = *k;
*k = temp;
temp = *(k+n);
*(k+n) = *(k+9);
*(k+9) = temp;
}
int main() {
input(a);
swap(a);
output(a);
return 0;
}

结果:
在这里插入图片描述

最后

以上就是标致山水为你收集整理的C语言10.16的全部内容,希望文章能够帮你解决C语言10.16所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部