梦执


私信TA

用户名:uq_93589957736

访问量:1396

签 名:

等  级
排  名 3768
经  验 1846
参赛次数 0
文章发表 2
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

题目:输入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 人评分

  评论区

  • «
  • »