C语言关于结构体的输入输出void input(struct book* p)
{
//scanf("%d,%s,%d,%d",p-a,p-num,p-pub.year,p-pub.month);
//这里 char num[9];数组c语言对函数输入结构体,按字符串输入 %s不能以逗号分隔c语言对函数输入结构体,函数无法识别输入结束!
//改成c语言对函数输入结构体:
scanf("%d %s %d %d",p-a,p-num,p-pub.year,p-pub.month);
//输入以空格分格就可以c语言对函数输入结构体了!
}
C语言编程问题,麻烦用结构体 , 谢谢你问题不全 , 任务2没贴出来 。按照编程习惯 , 分4个函数:
一、主函数,按顺序调用其他函数完成功能 。
二、输入函数,对结构体数组输入信息 。
三、输出函数,对指定的结构数组输出信息(传递长度1的地址,就表示一个结构体) 。
四、查询学分最大的课程,实现遍历结构数组,返回需要的结构数组元素 。
ps:所有结构数组传参,都伴随另一个长度参数,表示数组长度 。
#includestdio.h
typedef struct course
{
char cName[20];//课程名
char tName[10];//讲师名
int pn;//学生人数
int socre;//学分
}CRE;
void inputInfo(CRE cres[],int len);//信息输入
void outputInfo(CRE cres[],int len);//信息输出
CRE *getMaxBysocre(CRE cres[],int len);//获取学分最大的课程,返回课程结构
int main()
{
CRE cres[4],*cMax=NULL;//结构数组
inputInfo(cres,4);
printf("输入的信息为:\n");
outputInfo(cres,4);
cMax=getMaxBysocre(cres,4);
printf("学分最大的学科为:\n");
outputInfo(cMax,1);
return 0;
}
void outputInfo(CRE cres[],int len)
{
int i;
for(i=0;ilen;printf("\n"),i)
{
printf("课程名:%s\n",cres[i].cName);
printf("讲师名:%s\n",cres[i].tName);
printf("学生数:%d\n",cres[i].pn);
printf("学分数:%d\n",cres[i].socre);
}
}
void inputInfo(CRE cres[],int len)
{
int i;
for(i=0;ilen;printf("\n"),i)
{
printf("课程名:"),scanf("%s",cres[i].cName);
printf("讲师名:"),scanf("%s",cres[i].tName);
printf("学生数:"),scanf("%d",cres[i].pn);
printf("学分数:"),scanf("%d",cres[i].socre);
}
}
CRE *getMaxBysocre(CRE cres[],int len)
{
int i,max;
CRE *crep=NULL;
for(i=0,max=cres[0].socre;ilen;i)
if(cres[i].socremax)
crep=cres[i],max=cres[i].socre;
return crep;
}
C语言问题,有关于结构体作为输入参数#include stdio.h
typedef struct
{
char name[10];
char num[10];
int score;
} StudentStr;
void input(StudentStr *student)//=============
{
printf("Name:");
scanf("%s", student-name);//=============
printf("Number:");
scanf("%s", student-num);//=============
printf("Score:");
scanf("%d", student-score);//=============
}
void output(StudentStr student)
{
printf("Name: %s\n", student.name);
printf("Number: %s\n", student.num);
printf("Score: %d\n", student.score);
}
【c语言对函数输入结构体 c语言结构体函数】int main()
{
StudentStr student[5];
input(student[1]);//=============
output(student[1]);
return 0;
}
c语言结构体输入的问题第一个是正确的
后续, 由于%c读取了上一个输入的换行,导致出错 。
修改方法
在scanf的for循环中,scanf下面一行,加一句getchar();
注意加大括号 。
c语言中结构体数组传入函数trans(node);//改成trans(node);
void trans(struct linknode node[8])
{int o,i,m;
for(o=0;o8;o)
{for(i=0;i2;i)
{m=node[o].near[i];
for(i=0;i8;i)
{if((node[m].dtc[i] node[o].dtc[m])=node[o].dtc[i])
{node[o].dtc[i]=(node[m].dtc[i] node[o].dtc[m]);
node[o].path[i]=m;
}
}
}
}
}
关于c语言对函数输入结构体和c语言结构体函数的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 戴尔电脑怎么加入bios,戴尔bios怎么添加启动项
- js实现局部滚动条,js滚动条位置
- 钉钉直播怎么看到别人的脸,钉钉直播怎么看到别人的脸呢
- go语言bmp图片 go语言%c
- 快手原创视频定义是什么,快手里的原创视频都在哪找的
- 12月19有什么直播,请问12月19日
- 头条直播间怎么添加微信,头条怎么进入直播间
- oracle官网怎么查 怎么查oracle的sid
- 怎么样测试硬盘速度,怎么样测试硬盘速度是否正常