#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语言
时间: 2023-06-13 14:08:19 浏览: 150
这段代码实现了通过指针将两个变量的值进行交换的功能。首先在主函数中输入两个整数a和b,然后调用fun函数,将a和b的地址作为参数传递给fun函数。在fun函数中,将a所指向的变量值赋给temp,然后将b所指向的变量值赋给a所指向的变量,最后将temp的值赋给b所指向的变量。因此,通过指针操作,成功实现了a和b的值交换。最后在主函数中输出交换后的结果。
相关问题
#include <stdio.h> void fun(int a, int b) { int t; t = *b; *b = *a; *a = t; } void main() { int a, b; scanf("%d%d", &a, &b); fun(&a, &b); printf("%d,%d\n", a, b); }
这段代码有一些错误,我来解释一下:
1. 函数`fun`的参数类型应该是指针类型,因为我们需要修改`a`和`b`指向的内存中的值,而不是仅仅修改函数内部的局部变量。
2. 函数`fun`内部变量`t`的类型应该是int型指针,因为我们需要交换`a`和`b`指向的内存中的值,而不是仅仅交换`a`和`b`指针指向的地址。
3. 函数`main`中调用`fun`时应该传入`&a`和`&b`,因为我们需要将变量的地址传递给函数,而不是仅仅传递变量的值。
下面是修改后的代码:
```
#include <stdio.h>
void fun(int* a, int* b)
{
int* t;
t = b;
b = a;
a = t;
}
void main()
{
int a, b;
scanf("%d%d", &a, &b);
fun(&a, &b);
printf("%d,%d\n", a, b);
}
```
这个程序的作用是输入两个整数,然后交换它们的值,并输出交换后的结果。
题目:判断m是否为素数。 #include <stdio.h> void wwjt(); int fun(int n)
题目给出了函数名为fun,参数为整数n,但是函数体并没有给出。同时,代码中还有一个没有用到的函数wwjt,可以删除掉。下面给出一个简单的判断素数的函数实现:
```c
#include <stdio.h>
int is_prime(int m) {
if (m <= 1) {
return 0;
}
for (int i = 2; i * i <= m; i++) {
if (m % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int m;
scanf("%d", &m);
if (is_prime(m)) {
printf("%d是素数\n", m);
} else {
printf("%d不是素数\n", m);
}
return 0;
}
```
其中is_prime函数用于判断一个数是否为素数,如果是则返回1,否则返回0。在主函数中读入一个整数m,然后调用is_prime函数判断m是否为素数,输出相应的信息。