请用C语言编写如下程序:设计一个子函数,将任意2个整数交换,并在主函数中调用此函数。
时间: 2023-06-24 10:07:50 浏览: 117
```c
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int num1, num2;
printf("请输入两个整数:\n");
scanf("%d %d", &num1, &num2);
printf("交换前:num1=%d, num2=%d\n", num1, num2);
swap(&num1, &num2);
printf("交换后:num1=%d, num2=%d\n", num1, num2);
return 0;
}
```
注意:在 `swap` 函数中,使用指针来传递变量的地址,实现对变量的交换。在调用 `swap` 函数时,需要将变量的地址传递给函数,即 `swap(&num1, &num2)`。
相关问题
请用C语言编写如下程序:.设计一个子函数,对任意n个整数排序,并在主函数中输入10个整数,调用此函数排序。
以下是用C语言编写的程序,实现对任意n个整数排序的功能:
```c
#include <stdio.h>
void sort(int arr[], int n); // 声明排序函数
int main()
{
int n = 10; // 排序的元素个数
int arr[n]; // 声明要排序的数组
int i;
// 输入要排序的元素
printf("请输入%d个整数:\n", n);
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
sort(arr, n); // 调用排序函数
// 输出排序后的结果
printf("排序后的结果为:\n");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
// 实现选择排序算法
void sort(int arr[], int n)
{
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if (arr[j] < arr[i]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
```
该程序中,sort函数实现了选择排序算法,可以对任意n个整数进行排序。在主函数中,先声明要排序的数组,然后输入10个整数,并调用sort函数进行排序,最后输出排序后的结果。
请用C语言编写如下程序:.设计一个子函数,找出任意2个整数的最大公约数,并在主函数中调用此函数。
以下是用 C 语言编写的程序,实现求两个整数的最大公约数:
```c
#include <stdio.h>
int gcd(int a, int b);
int main()
{
int num1, num2, result;
printf("请输入两个整数:\n");
scanf("%d %d", &num1, &num2);
result = gcd(num1, num2);
printf("%d 和 %d 的最大公约数是:%d\n", num1, num2, result);
return 0;
}
int gcd(int a, int b)
{
while (b != 0)
{
int temp = a % b;
a = b;
b = temp;
}
return a;
}
```
程序中,我们定义了一个 `gcd` 函数,用于求两个整数的最大公约数。在主函数中,我们先输入两个整数,并将它们作为参数传递给 `gcd` 函数,最后输出结果。
`gcd` 函数的实现过程是采用了辗转相除法。它的基本思路是:假设两个整数为 a 和 b,我们先将 a 对 b 取模,得到余数 c;然后再将 b 对 c 取模,得到余数 d;接着再将 c 对 d 取模,以此类推,直到某个余数为 0,此时上一个余数即为最大公约数。
阅读全文