c语言一道改错题,有人会的麻烦了,谢谢了
#include<stdio.h>#include<conio.h>Voidfun(inta,b){intt;t=b;b=a;a=t;}main(){inta,b;clr...
#include <stdio.h> #include <conio.h> Void fun(int a,b) { int t; t=b;b=a;a=t; } main() { int a,b; clrscr(); printf("Enter a,b:"); scanf("%d%d",&a,&b); fun(&a,&b); printf("a=%d b=%d\n",a,b); }
展开
展开全部
fun的形参错了.
&a和&b是int*的,而fun的形参是int的
这个程序写得极其不标准
//修改后的,可直接复制运行的
# include <stdio.h>
# include <conio.h>
void fun(int* a, int* b)
{
int t = *b;
*b = *a;
*a = t;
}
int main(void)
{
int a, b;
printf("Enter a and b \n");
scanf("%d%d", &a, &b);
fun(&a, &b);
printf("%d\t%d", a, b);
return 0;
}
//clscr()没用
追问
那你能帮我看下,具体哪个地方错了。我c语言不太好。有些看不出来。麻烦了
追答
不知道你学过指针没,如果学过,你可以做这个程序,如果没学过,你做这个程序就有点难了.
//修改后的,可直接复制运行的
# include <stdio.h>
# include <conio.h>
void fun(int* a, int* b)/*这是指针类型,指向int形的指针.注意,这里是声明了一个叫a和b的
指针名,类型为int* */
{
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 \n");
scanf("%d%d", &a, &b);
fun(&a, &b);//把a和b的地址发给fun函数,就像一个killer知道了你家在哪,你可以去kill你了,与scanf同理的
printf("%d\t%d", a, b);
return 0;
}
//clscr()没用
//void不能是大写!!!!!语言中是区别大小写的
展开全部
#include <stdio.h>
#include <conio.h>
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\n",a,b);
}
给你改好了。
追问
哥们,不好意思哈
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把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");代替。不过放在那个位置也没有什么用处。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Void错误,应该是void
fun函数定义参数错误,应该是(int a, int b)
main函数要是返回值,void main()
主函数调用fun()错误,传递的是指针int *,函数定义参数类型是int,类型不符
追问
谢谢你了,那个,刚才那个哥们最先回复的,分得给他,实在不好意思。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询