一道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;}
展开
 我来答
terranlong
2011-09-16 · TA获得超过7293个赞
知道大有可为答主
回答量:2660
采纳率:0%
帮助的人:3950万
展开全部
输出是: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; //返回地址
}
一蜉蝣
2011-09-16 · TA获得超过1319个赞
知道小有建树答主
回答量:89
采纳率:0%
帮助的人:95.7万
展开全部
1002,ChangRong, 1202.0
主函数中调用了f函数,f函数的功能是改变形参t所指向的结构体变量的值,现在通过函数调用把结构体变量a的值传递给了形参t;两者公用一段内存单元,改变了t就改变了a;在f函数中把a改编成了1002,ChangRong, 1202.0 ;因此应输出1002,ChangRong, 1202.0 ;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hiwewe2002
2011-09-16 · 超过17用户采纳过TA的回答
知道答主
回答量:224
采纳率:0%
帮助的人:97.6万
展开全部
{1001,"ZhangDa",1098.0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qi751215210
2011-09-16 · TA获得超过119个赞
知道答主
回答量:151
采纳率:0%
帮助的人:28.7万
展开全部
1001,zhangda 1098.0我也做过这个题目。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式