中易网

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不能是大写!!!!!语言中是区别大小写的
全部回答
  • 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); 
}
 给你改好了。追问哥们,不好意思哈
  • 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,类型不符追问谢谢你了,那个,刚才那个哥们最先回复的,分得给他,实在不好意思。。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息