题目描述 用指针作为函数参数,交换两个变量的值。 #include <stdio.h> /* 形参为指针 */ //begin //end int main( ) { int a, b, *p, *q; scanf("%d%d", &a, &b); /* 输入变量a、b的值 */ p = &a; /* 指针p指向变量a */ q = &b; /* 指针q指向变量b */ swap ( p, q ); /* 传递的数据是变量a、b的地址 */ printf("a=%d,b=%d\n", a, b); /* 输出交换后变量a,b的值 */ return 0; } //编写函数,只提交函数部分 输入 输入俩数字,进行值的交换 输出 输出交换后的结果 输入输出样例 样例输入 #1 1 2 样例输出 #1 a=2,b=1
时间: 2023-12-10 21:06:09 浏览: 29
```c
void swap(int *p, int *q) {
int temp = *p;
*p = *q;
*q = temp;
}
```
相关问题
一维整型数组a有5个元素,请编写assign函数和max函数分别实现为数组元素赋值和求解数组元素最大值。目前,除了assign和max这两个函数以外,其他代码已编写完成,如下所示。请编码实现上述两个函数。 #include <stdio.h> /* @Filename: ex602.c @Author: Ju Chengdong @Version: 1.0 @Date: 2021-03-18 @Description: Pointer As Function Parameter */ int main(void){ void assign(int *array, int length); int max(int array, int length); int a[5]; assign(a, 5); / 为数组a元素赋值 / printf("max=%d",max(a, 5)); / 求数组元素最大值并输出 / return 0; } / * 函数名称:assign * 函数功能:通过键盘输入为一维数组元素赋值 * 形式参数:array为int型指针;length为int型,可用于表示一维数组长度 * 返 回 值:无 */ void assign(int array,int length){ // 请编码实现assign函数 } / * 函数名称:max * 函数功能:求解一维数组元素最大值 * 形式参数:array为int型指针;length为int型,可用于表示一维数组长度 * 返 回 值:int型,为数组元素最大值 */ int max(int *array,int length){ // 请编码实现max函数 } 注:在程序中不得使用全局变量。
请参考下方代码实现:
```
#include <stdio.h>
/* 函数名称:assign
* 函数功能:通过键盘输入为一维数组元素赋值
* 形式参数:array为int型指针;length为int型,可用于表示一维数组长度
* 返回值:无
*/
void assign(int *array, int length){
printf("请依次输入%d个整数:", length);
for(int i = 0; i < length; i++){
scanf("%d", &array[i]);
}
}
/* 函数名称:max
* 函数功能:求解一维数组元素最大值
* 形式参数:array为int型指针;length为int型,可用于表示一维数组长度
* 返回值:int型,为数组元素最大值
*/
int max(int *array, int length){
int max_num = array[0]; // 假设第一个数为最大值
for(int i = 1; i < length; i++){
if(array[i] > max_num){
max_num = array[i];
}
}
return max_num;
}
int main(void){
int a[5];
assign(a, 5); // 为数组a元素赋值
printf("max=%d",max(a, 5)); // 求数组元素最大值并输出
return 0;
}
```
注:在assign函数中,形参应该为 int *array 而不是 int array。
输入七个整数,按从小到大的顺序排序,并输出 要求以数组作为实参,以指针作为形参 给定代码如下,提交时不需要加上 #include <stdio.h> void sort(int *a); int main() { int num[7],i; for(i=0; i<7; i++) scanf("%d",&num[i]); sort(num); return 0; } 输入 七个整数 输出 升序后的七个数
好的,以下是代码实现:
```
#include <stdio.h>
void sort(int *a);
int main() {
int num[7], i;
for(i = 0; i < 7; i++) {
scanf("%d", &num[i]);
}
sort(num);
for(i = 0; i < 7; i++) {
printf("%d ", num[i]);
}
return 0;
}
void sort(int *a) {
int i, j, temp;
for(i = 0; i < 7; i++) {
for(j = i + 1; j < 7; j++) {
if(*(a + j) < *(a + i)) {
temp = *(a + j);
*(a + j) = *(a + i);
*(a + i) = temp;
}
}
}
}
```
输入七个整数后,程序会调用 `sort` 函数进行排序,排序结果保存在原数组中。最后程序会输出升序后的七个数。注意,此处使用指针作为形参传递数组,指针变量 `a` 指向原数组的首地址,通过指针的运算操作可以实现对数组元素的访问和修改。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)