c语言一道改错题,有人会的麻烦了,谢谢了
答案:4 悬赏:0
解决时间 2021-01-12 00:06
- 提问者网友:欺烟
- 2021-01-11 11:13
c语言一道改错题,有人会的麻烦了,谢谢了
最佳答案
- 二级知识专家网友:一叶十三刺
- 2021-01-11 12:06
fun的形参错了.
&a和&b是int*的,而fun的形参是int的
这个程序写得极其不标准
//修改后的,可直接复制运行的
# include
# include
void fun(int* a, int* b)
{
int t = *b;
*b = *a;
*a = t;
}
int main(void)
{
int a, b;
printf("Enter a and b
");
scanf("%d%d", &a, &b);
fun(&a, &b);
printf("%d %d", a, b);
return 0;
}
//clscr()没用追问那你能帮我看下,具体哪个地方错了。我c语言不太好。有些看不出来。麻烦了追答不知道你学过指针没,如果学过,你可以做这个程序,如果没学过,你做这个程序就有点难了.
//修改后的,可直接复制运行的
# include
# include
void fun(int* a, int* b)
{
int t = *b;//*号为b指向的空间,就是说*b是main中的b,b是指main中b的地址.
*b = *a;// 同上
*a = t;
}
int main(void)
{
int a, b;
printf("Enter a and b
");
scanf("%d%d", &a, &b);
fun(&a, &b);//把a和b的地址发给fun函数,就像一个killer知道了你家在哪,你可以去kill你了,与scanf同理的
printf("%d %d", a, b);
return 0;
}
//clscr()没用
//void不能是大写!!!!!语言中是区别大小写的
&a和&b是int*的,而fun的形参是int的
这个程序写得极其不标准
//修改后的,可直接复制运行的
# include
# include
void fun(int* a, int* b)
{
int t = *b;
*b = *a;
*a = t;
}
int main(void)
{
int a, b;
printf("Enter a and b
");
scanf("%d%d", &a, &b);
fun(&a, &b);
printf("%d %d", a, b);
return 0;
}
//clscr()没用追问那你能帮我看下,具体哪个地方错了。我c语言不太好。有些看不出来。麻烦了追答不知道你学过指针没,如果学过,你可以做这个程序,如果没学过,你做这个程序就有点难了.
//修改后的,可直接复制运行的
# include
# include
void fun(int* a, int* b)
{
int t = *b;//*号为b指向的空间,就是说*b是main中的b,b是指main中b的地址.
*b = *a;// 同上
*a = t;
}
int main(void)
{
int a, b;
printf("Enter a and b
");
scanf("%d%d", &a, &b);
fun(&a, &b);//把a和b的地址发给fun函数,就像一个killer知道了你家在哪,你可以去kill你了,与scanf同理的
printf("%d %d", a, b);
return 0;
}
//clscr()没用
//void不能是大写!!!!!语言中是区别大小写的
全部回答
- 1楼网友:孤老序
- 2021-01-11 14:20
#include
#include
void fun(int *a,int *b) //改成指针
{
int t;
t=*b;
*b=*a;
*a=t;
}
main() {
int a,b;
clrscr(); //clrscr只能在turbo C下用
printf("Enter a,b:");
scanf("%d%d",&a,&b);
fun(&a,&b);
printf("a=%d b=%d ",a,b);
}
给你改好了。追问哥们,不好意思哈
#include
void fun(int *a,int *b) //改成指针
{
int t;
t=*b;
*b=*a;
*a=t;
}
main() {
int a,b;
clrscr(); //clrscr只能在turbo C下用
printf("Enter a,b:");
scanf("%d%d",&a,&b);
fun(&a,&b);
printf("a=%d b=%d ",a,b);
}
给你改好了。追问哥们,不好意思哈
- 2楼网友:青灯有味
- 2021-01-11 13:48
把Void fun(int a,b)改成void fun(int *a,int *b)。
把t=b;b=a;a=t;改成t=*b;*b=*a;*a=t;。
把clrscr();删除——除非你用很古老的编译器,时下的编译器不用这个函数了;可以包含stdlib.h头文件,用system("cls");代替。不过放在那个位置也没有什么用处。
- 3楼网友:底特律间谍
- 2021-01-11 12:37
Void错误,应该是void
fun函数定义参数错误,应该是(int a, int b)
main函数要是返回值,void main()
主函数调用fun()错误,传递的是指针int *,函数定义参数类型是int,类型不符追问谢谢你了,那个,刚才那个哥们最先回复的,分得给他,实在不好意思。。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息