一道C语言题求高手解答 #include <stdio.h> #include <string.h> struct A {int a;char b[10];double c; }
#include<stdio.h>#include<string.h>structA{inta;charb[10];doublec;};voidf(structAt);m...
#include <stdio.h>
#include <string.h>
struct A
{int a;char b[10];double c;
} ;
void f(struct A t);
main()
{struct A a={1001,"ZhangDa",1098.0};
f(a);printf("%d,%s,%6.1f\n",a.a,a.b,a.c);
}
void f(struct A t)
{t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;} 展开
#include <string.h>
struct A
{int a;char b[10];double c;
} ;
void f(struct A t);
main()
{struct A a={1001,"ZhangDa",1098.0};
f(a);printf("%d,%s,%6.1f\n",a.a,a.b,a.c);
}
void f(struct A t)
{t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;} 展开
4个回答
展开全部
输出是:1001,ZhangDa,1098.0
楼主的意思是想输出:1002,ChangRong, 1202.0
可以改成以下那样,改的地方已经注释
#include <stdio.h>
#include <string.h>
struct A
{
int a;
char b[10];
double c;
};
struct A* f(struct A t); //函数不要无返回值,返回一个结构类的指针
void main()
{
struct A aa={1001,"ZhangDa",1098.0}; //用aa吧,不要跟结构里面的a混淆了
aa = *f(aa); //给aa重新赋值
printf("%d,%s,%6.1f\n",aa.a,aa.b,aa.c);
}
struct A* f(struct A t)
{
t.a=1002;
strcpy(t.b,"ChangRong");
t.c=1202.0;
return &t; //返回地址
}
楼主的意思是想输出:1002,ChangRong, 1202.0
可以改成以下那样,改的地方已经注释
#include <stdio.h>
#include <string.h>
struct A
{
int a;
char b[10];
double c;
};
struct A* f(struct A t); //函数不要无返回值,返回一个结构类的指针
void main()
{
struct A aa={1001,"ZhangDa",1098.0}; //用aa吧,不要跟结构里面的a混淆了
aa = *f(aa); //给aa重新赋值
printf("%d,%s,%6.1f\n",aa.a,aa.b,aa.c);
}
struct A* f(struct A t)
{
t.a=1002;
strcpy(t.b,"ChangRong");
t.c=1202.0;
return &t; //返回地址
}
展开全部
1002,ChangRong, 1202.0
主函数中调用了f函数,f函数的功能是改变形参t所指向的结构体变量的值,现在通过函数调用把结构体变量a的值传递给了形参t;两者公用一段内存单元,改变了t就改变了a;在f函数中把a改编成了1002,ChangRong, 1202.0 ;因此应输出1002,ChangRong, 1202.0 ;
主函数中调用了f函数,f函数的功能是改变形参t所指向的结构体变量的值,现在通过函数调用把结构体变量a的值传递给了形参t;两者公用一段内存单元,改变了t就改变了a;在f函数中把a改编成了1002,ChangRong, 1202.0 ;因此应输出1002,ChangRong, 1202.0 ;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
{1001,"ZhangDa",1098.0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1001,zhangda 1098.0我也做过这个题目。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询