结构体输入输出数组输入输出

C语言关于结构体的输入输出_百度知道
C语言关于结构体的输入输出
输出最后的 那个13612,0.....
是什么鬼!? 是怎么乱入的?
#include&stdio.h&
#include&conio.h&
struct date{
struct book{
char num[9];
void input(struct book* p)
scanf(&%d,%s,%d,%d&,...
我有更好的答案
year,&p-&%d %s %d %d&;pub,%d,%d&,函数无法识别输入结束!//这里 char num[9];数组,按字符串输入 %s不能以逗号分隔;scanf(&quot.month);&#47,&p-&a,p-&num,&p-&%d,%s;/改成,&p-&a,p-&num,&p-&gt.year,&p-&pub:scanf(&quot.month);&#47void input(struct book* p){/&#47
采纳率:75%
来自团队:
],把scanf中的%s换成%[^,在CSDN里有人给出了解决方法问题出在字符串输入上
为您推荐:
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。千里之行 始于足下
欢迎加入我们,一同切磋技术。 &
用户名: &&&
密 码: &
共有 9838 人关注过本帖
标题:结构体数组如何让用户输入赋值?
等 级:新手上路
帖 子:24
结帖率:100%
&&已结贴√
&&问题点数:20&&回复次数:10&&&
结构体数组如何让用户输入赋值?
题目是这样的:
&&& 小米是一个幼儿园老师,每学期的泥塑课上,她都会给每个学生发不超过250立方厘米的等量橡皮泥,教大家做泥塑。在上课过程中,她发现每个班都恰好有一个小朋友会去抢另一个小朋友的橡皮泥,于是她决定,在正式开始做泥塑前,让大家把手里的橡皮泥都捏成一个立方体,并且测量手里捏好的橡皮泥的长、宽和高。这样,她就可以知道谁被谁抢了橡皮泥了。
&&& 小米老师在不同的学期可能会带一个班或者同时带多个班,因此输入数据可能有一组或者多组。每组输入数据的第一行为一个整数n,表示了这个班的小朋友数,之后n行每行包括了由空格分隔的三个整数和一个字符串,那个字符串表示了小朋友的名字,前面三个整数则是这个学术手里橡皮泥块的长、宽、高数据。按照幼儿园的规定,每个班最多有9个小朋友,最少也要有2个小朋友,每个小朋友在学籍系统中的名称不超过8个字符长。当出现一个班级的小朋友数为-1时,表示没有更多的班级了。
输出行数与小米老师带的班级数相同,形式为“X took clay from Y.”,具体请参考样例输出。
10 10 2 Jill
5 3 10 Will
5 5 10 Bill
2 4 10 Cam
8 11 1 Graham
Bill took clay from Will.
Graham took clay from Cam.
我目前的代码:
#include&stdio.h&
typedef struct student{}stu[9];
int main(){
&&& int a,i,max,min,dn,
&&& int b[9];
&&& scanf(&%d\n&,&a);
&&& if(a!=-1){
&&&&&&&&for(i=0;i&a;i++){
&&& scanf(&%d %d %d %s\n&,&stu[i].l,&stu[i].w,&stu[i].h,&stu[i].name);//格式是否对?
&&&&&&&&b[i]=stu[i].l*stu[i].w*stu[i].h;
&&&&&&&&&&&&max=min=b[0];
&&&&&&&&&&&&if(b[i]&max){
&&&&&&&&&&&&&&& max=b[i];
&&&&&&&&&&&&&&& dn=i;
&&&&&&&&&&&&}
&&&&&&&&&&&&if(b[i]&min){
&&&&&&&&&&&&&&& min=b[i];
&&&&&&&&&&&&&&& xn=i;
&&&&&&&&&&&&}
&&& printf(&%s took clay from %s\n&,stu[dn].name,stu[xn].name);
&&& else return 0;
&&& return 0;
我知道问题还有很多,不过目前纠结于像这种结构体数组输入赋值要怎么写呢?
搜索更多相关主题的帖子:
&&&&&&&&&&
等 级:青峰侠
帖 子:443
专家分:1966
typedef struct student
&&&&&& // 你声明的时候应该用 name[9], 一个字符变量怎么保存一个字符串?
scanf(&%d %d %d %s\n&,&stu[i].l,&stu[i].w,&stu[i].h,&stu[i].name);//格式是否对?&&这里的 & 不要, stu[i].name已经是它的地址了, 就像数组一样.
结构体赋值和变量赋值差不多的, 只是多了个成员符号.
等 级:新手上路
帖 子:24
回复 2楼 pangshch
题目中每个小朋友的名字字符长不超过8,是不应该char name[8]?
&stu[i].name中的&不要,是否&stu[i].l,&stu[i].w,&stu[i].h的也不要呢?
等 级:青峰侠
帖 子:443
专家分:1966
以下是引用斋宅窄寨在 14:11:51的发言:
题目中每个小朋友的名字字符长不超过8,是不应该char name[8]?
&stu.name中的&不要,是否&stu.l,&stu.w,&stu.h的也不要呢?1. 名字字符长度为8. 再加一个字符串结尾符'\0', 所以数组要9个字节宽
2. str.name是字符数组名, 本身代表数组的首地址.等价于&str.name[0].
&&&stu.l只是一个变量名, 并不代表变量的地址, 所以要加&
等 级:新手上路
帖 子:24
回复 4楼 pangshch
搜噶,我现在单纯想先看看赋值是否成功,所以试验如下代码:
#include&stdio.h&
typedef struct student{char name[9];}stu[9];
int main(){
&&& int a,i;
&&& scanf(&%d\n&,&a);
&&& if(a!=-1){
&&&&&&&&for(i=0;i&a;i++){
&&& scanf(&%d %d %d %s\n&,&stu[i].l,&stu[i].w,&stu[i].h,stu[i].name);
&&& printf(&%d %d %d %s\n&,stu[i].l,stu[i].w,stu[i].h,stu[i].name);
&&& else return 0;
&&& return 0;
10 10 2 Jill
5 3 10 Will
5 5 10 Bill
期望输出:
10 10 2 Jill
5 3 10 Will
5 5 10 Bill
编译报错:
prog.c: In function ‘main’:
prog.c:8:28: error: expected expression before ‘stu’
&&&&&scanf(&%d %d %d %s\n&,&stu[i].l,&stu[i].w,&stu[i].h,stu[i].name);
&&&&&&&&&&&&&&&&&&&&&&&&&&& ^
prog.c:9:28: error: expected expression before ‘stu’
&&&&&printf(&%d %d %d %s\n&,stu[i].l,stu[i].w,stu[i].h,stu[i].name);
&&&&&&&&&&&&&&&&&&&&&&&&&&& ^
问题出在哪呢?需要怎么改呀?
等 级:青峰侠
帖 子:443
专家分:1966
&&得分:20&
程序代码:#include&stdio.h&
typedef struct student{intintintchar name[<font color=#];}stu[<font color=#];&&&// 你知道typedef是干什么用的吗???
int main(){
&&& int a,i;
&&& scanf(&%d\n&,&a);&&&&&&&&// 你知道这里多一个'\n'表示什么意思吗??
&&& if(a!=-<font color=#){
&&&&&&&&for(i=<font color=#;i&a;i++){
&&& scanf(&%d %d %d %s\n&,&stu[i].l,&stu[i].w,&stu[i].h,stu[i].name);
&&& printf(&%d %d %d %s\n&,stu[i].l,stu[i].w,stu[i].h,stu[i].name);
&&& else return <font color=#;
&&& return <font color=#;
等 级:新手上路
帖 子:24
回复 6楼 pangshch
typedef我理解的就是将结构体struct student{char name[9];}重新命了个名为stu,从而用起来方便,以后只需写stu来调用,而不用写struct student了;
scanf(&%d\n&,&a);这里\n是我多打了,通常这样写不好,加这个意味着输入要多敲次回车。
等 级:青峰侠
帖 子:443
专家分:1966
以下是引用斋宅窄寨在 15:19:59的发言:
typedef我理解的就是将结构体struct student{char name[9];}重新命了个名为stu,从而用起来方便,以后只需写stu来调用,而不用写struct student了;
scanf(&%d\n&,&a);这里\n是我多打了,通常这样写不好,加这个意味着输入要多敲次回车。typedef struct student{char name[9];} str[9];&&那么这个语句什么意思?? 你理解一下. 再结合你后面的scanf() printf()语句一起理解一下...看是不是你想要的样子...
等 级:青峰侠
帖 子:443
专家分:1966
要是你实在不明白, 那就简单点, 把typedef删了就可以了.
等 级:新手上路
帖 子:24
回复 8楼 pangshch
我改成这样后就好了,那typedef究竟要怎么理解呢?感觉这样写也不复杂么。
#include&stdio.h&
struct student{char name[9];};
int main(){
&&& int a,i;
&&& struct student stu[9];
&&& scanf(&%d&,&a);
&&& if(a!=-1){
&&&&&&&&for(i=0;i&a;i++){
&&& scanf(&%d %d %d %s\n&,&stu[i].l,&stu[i].w,&stu[i].h,stu[i].name);
&&& printf(&%d %d %d %s\n&,stu[i].l,stu[i].w,stu[i].h,stu[i].name);
&&& else return 0;
&&& return 0;
版权所有,并保留所有权利。
Powered by , Processed in 0.191938 second(s), 7 queries.
Copyright&, BCCN.NET, All Rights Reserved随笔- 117&
&&&&&&&&&&&
1 #include &stdio.h&
2 #include &stdlib.h&
4 struct student{
char str[<span style="color: #];
<span style="color: #
<span style="color: # int main(){
<span style="color: #
<span style="color: #
<span style="color: #
struct student stu[<span style="color: #];
<span style="color: #
<span style="color: #
scanf("%d", &n);
<span style="color: #
for(int i = <span style="color: #; i & ++i){
<span style="color: #
scanf("%d%s%lf", &stu[i].num, stu[i].str, &stu[i].dec);
<span style="color: #
<span style="color: #
<span style="color: #
printf("%d\n", n);
<span style="color: #
for(int i = <span style="color: #; i & ++i){
<span style="color: #
printf("%d %s %lf\n", stu[i].num, stu[i].str, stu[i].dec);
<span style="color: #
<span style="color: #
return <span style="color: #;
<span style="color: # }
<span style="color: # /*
<span style="color: # <span style="color: #
<span style="color: # <span style="color: # 字符串0 20.02
<span style="color: # <span style="color: # 字符串1 21.12
<span style="color: # <span style="color: # 字符串2 22.22
<span style="color: # */
阅读(...) 评论()温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(7416)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_081066',
blogTitle:'结构体的使用方法',
blogAbstract:'
首先让我们定义结构体:struct stu
char name[20];
float score[4];
再定义指向结构体类型变量的指针变量:
struct stu *p1, *p2 ;
定义指针变量p 1、p 2,分别指向结构体类型变量。
引用形式为:指针变量→成员;
[例7-2] 对指向结构体类型变量的正确使用。输入一个结构体类型变量的成员,并输出。
#include &stdlib.h&&&& /*使用m a l l o c ( ) 需要* /',
blogTag:'c++,结构体,用法',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:3,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}

我要回帖

更多关于 原码能表示多少个数 的文章

 

随机推荐