用c语言交换两个整数的值,函数接口定义:void fun (int *a,int *b);
时间: 2024-02-01 08:15:31 浏览: 74
下面是交换两个整数的值的 C 语言代码:
```c
void fun(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
```
调用这个函数时,传入两个整数的地址即可:
```c
int main() {
int a = 1, b = 2;
printf("Before swap: a = %d, b = %d\n", a, b);
fun(&a, &b);
printf("After swap: a = %d, b = %d\n", a, b);
return 0;
}
```
输出:
```
Before swap: a = 1, b = 2
After swap: a = 2, b = 1
```
相关问题
用c语言完成这个任务 为防止信息窃取,需要采用加密技术将电文加密变成密文。恺撒密码是一种简单的替换加密技术,其规则是将明文中的所有字母都在字母表上偏移offset位后被替换成密文:当offset大于零时,表示向后偏移;当offset小于零时,表示向前偏移。输入一个以回车符为结束标志的字符串(少于80个字符),再输入一个整数offset,调用函数fun()后用凯撒密码将其加密后输出。 函数接口定义: void fun ( char *Pstr, const int n ); 其中 Pstr 和 n 都是用户传入的参数。 Pstr 指向要加密的字符串; n 的范围不超过整数。
以下是用 C 语言实现的代码:
```c
#include <stdio.h>
#include <ctype.h>
void fun(char *Pstr, const int n) {
int i = 0;
char c;
while (Pstr[i] != '\0') {
c = Pstr[i];
if (isalpha(c)) {
if (islower(c)) {
c = 'a' + (c - 'a' + n + 26) % 26;
} else {
c = 'A' + (c - 'A' + n + 26) % 26;
}
}
putchar(c);
i++;
}
}
int main() {
char str[80];
int offset;
printf("请输入要加密的字符串:");
fgets(str, 80, stdin);
printf("请输入偏移量:");
scanf("%d", &offset);
fun(str, offset);
return 0;
}
```
在上面的代码中,我们先通过 `fgets()` 函数读入要加密的字符串,然后通过 `scanf()` 函数读入偏移量。接着,在 `fun()` 函数中,我们遍历字符串中的每一个字符,如果它是字母,就将它加上偏移量并加密成另一个字母。最后,我们通过 `putchar()` 函数输出加密后的字符。
值得注意的是,由于恺撒密码是一种简单的替换加密技术,因此它的加密方法也非常简单,只需要将明文中的每个字母都替换成密文即可。在实现时,我们可以使用 ASCII 码表来实现字母的加密和解密,具体方法是将字母的 ASCII 码加上偏移量,然后将结果对 26 取模,最后再加上对应字母的 ASCII 码。需要注意的是,当偏移量为负数时需要加上 26,以保证结果仍在字母表中。
#include<stdio.h> void fun (int *a,int *b); int main() { int a,b; scanf("a=%d,b=%d",&a,&b); fun(&a,&b); printf("a=%d b=%d\n",a,b); return 0; } void fun(int *a,int *b){ int temp; temp=*a; *a=*b; *b=temp; }c语言
这段代码实现了通过指针将两个变量的值进行交换的功能。首先在主函数中输入两个整数a和b,然后调用fun函数,将a和b的地址作为参数传递给fun函数。在fun函数中,将a所指向的变量值赋给temp,然后将b所指向的变量值赋给a所指向的变量,最后将temp的值赋给b所指向的变量。因此,通过指针操作,成功实现了a和b的值交换。最后在主函数中输出交换后的结果。
阅读全文