C语言:用指针实现,输入6个整数,把最小数与第1个数交换,最大数与最后1个数交换,其它数据不动。输入保证最大值和最小值唯一。请编写3个函数:(1)输入6个数;(2)进行处理函数;(2)输出6个数,每个数占3个宽度,左对齐。 函数接口定义: void inputdata(int *p); void swapdata(int *p); void printdata(int *p); p是传入的数组首地址。 裁判测试程序样例: #include <stdio.h> void inputdata(int *p); void swapdata(int *p); void printdata(int *p); int main(){ int a[6]; inputdata(a); swapdata(a); printdata(a); return 0; } 输入样例1: 2 1 6 5 4 3 输出样例1: 1 2 3 5 4 6
时间: 2024-01-08 16:01:50 浏览: 24
以下是代码实现:
```
#include <stdio.h>
void inputdata(int *p){
int i;
for(i=0;i<6;i++)
scanf("%d",p+i);
}
void swapdata(int *p){
int i,min,max,tmp;
min=max=0;
for(i=1;i<6;i++){
if(*(p+i)<*(p+min))
min=i;
if(*(p+i)>*(p+max))
max=i;
}
tmp=*(p+0);
*(p+0)=*(p+min);
*(p+min)=tmp;
tmp=*(p+5);
*(p+5)=*(p+max);
*(p+max)=tmp;
}
void printdata(int *p){
int i;
for(i=0;i<6;i++)
printf("%-3d",*(p+i));
}
int main(){
int a[6];
inputdata(a);
swapdata(a);
printdata(a);
return 0;
}
```
相关问题
c语言用指针实现输入八个整数存入一维数组,将其中最大数与第一个数交换,最小数与最后一个数交换
可以使用以下代码实现:
```c
#include <stdio.h>
int main() {
int arr[8];
int i, max_index = , min_index = , temp;
// 输入八个整数
printf("请输入八个整数:\n");
for (i = ; i < 8; i++) {
scanf("%d", &arr[i]);
}
// 找到最大数和最小数的下标
for (i = 1; i < 8; i++) {
if (arr[i] > arr[max_index]) {
max_index = i;
}
if (arr[i] < arr[min_index]) {
min_index = i;
}
}
// 交换最大数和第一个数
temp = arr[];
arr[] = arr[max_index];
arr[max_index] = temp;
// 交换最小数和最后一个数
temp = arr[7];
arr[7] = arr[min_index];
arr[min_index] = temp;
// 输出结果
printf("交换后的数组为:\n");
for (i = ; i < 8; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return ;
}
```
用c语言编程实现输入8个整数存入一维数组,将其中最大数与第一个数交换,最小数与最后一个数交换(用指针完成)
以下是用 C 语言编程实现输入 8 个整数存入一维数组,将其中最大数与第一个数交换,最小数与最后一个数交换的示例代码,使用指针完成:
```
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int arr[8];
int i;
int *max, *min;
printf("请输入8个整数:\n");
for (i = 0; i < 8; i++) {
scanf("%d", &arr[i]);
}
max = &arr[0];
min = &arr[7];
for (i = 1; i < 8; i++) {
if (*max < arr[i]) {
max = &arr[i];
}
if (*min > arr[i]) {
min = &arr[i];
}
}
swap(&arr[0], max);
swap(&arr[7], min);
printf("交换后的数组为:\n");
for (i = 0; i < 8; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
在程序中,首先定义一个包含 8 个整数的数组 `arr`,然后用 `scanf` 函数让用户输入这 8 个整数,并将它们存储到数组中。
接下来,定义两个指向整数的指针 `max` 和 `min`,并将它们分别指向数组中的第一个元素和最后一个元素。然后,用一个循环遍历整个数组,如果找到了比 `max` 指向的元素更大的元素,就将 `max` 指向该元素,如果找到了比 `min` 指向的元素更小的元素,就将 `min` 指向该元素。
最后,调用 `swap` 函数,将最大数与第一个数交换,将最小数与最后一个数交换。最后,使用循环遍历输出交换后的数组。
需要注意的是,在 `swap` 函数中,使用了指针来交换两个整数的值。指针是一种特殊的变量,它存储了一个内存地址,可以通过这个地址访问和修改变量的值。在本程序中,`a` 和 `b` 分别是指向两个整数的指针,我们可以通过 `*a` 和 `*b` 来访问和修改它们所指向的变量的值。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)