admin管理员组文章数量:1794759
C语言结构体当中数组的遍历、求最大最小值和简单的计算
C语言结构体当中数组的遍历、求最大最小值和简单的计算
最近我的一个朋友问我,使用结构体来计算数组当中的数值的时候,要么报错,要么运行的时候出现不是数组当中的值(图已欠费) 废话不多说,直接干货走起(算不上干货吧!) 代码按照顺序排列,直接使用也是可以的哈!
1首先定义一个结构体
#include <stdio.h> /*定义一个结构体 结构体的使用: */ struct stu { int score; char *name; };2写主函数里面的东西(简单的一mian到底)这里是获取输入的数据和输出
//主函数 int main() { //定义所需要的变量 int i; struct stu shuzu[3]; struct stu max; struct stu min; struct stu sum; //提示输入名字和成绩 printf("请输入学生的名字和成绩\\n"); //获取输入的数据 //将定义好的变量使用结构体名+点+变量名 for ( i = 0; i < sizeof(shuzu)/sizeof(shuzu[0]); i++) { printf("请输入第%d个学生的名字:\\n",i+1); //指针需要开辟一个空间,不然就会成为一个野指针 shuzu[i].name = (char *)malloc(256); scanf("%s",shuzu[i].name); printf("请输入第%d个学生的成绩:\\n",i+1); scanf("%d",&shuzu[i].score); } //打印输出获取到的名字和成绩 printf("学生的名字和成绩是:\\n"); for ( i = 0; i < sizeof(shuzu)/sizeof(shuzu[0]); i++) { printf("%s,%d\\n",shuzu[i].name,shuzu[i].score); }3如果需要寻找最大最小值就写上
//寻找最大最小值 max = min = shuzu[0]; for(i = 0;i < sizeof(shuzu)/sizeof(shuzu[0]);i++) { if(max.score < shuzu[i].score) { max = shuzu[i]; } if(min.score > shuzu[i].score) { min = shuzu[i]; } } printf("最大值是:%s:%d\\n",max.name,max.score); printf("最小值是:%s:%d\\n",min.name,min.score);4要是需要计算总数和遍历数组以及计算平均数也可以写上哈!
//计算平均数 float pjs; sum = shuzu[0]; //数组的遍历 for(i = 0;i < 3;i++ ) { if(sum.score = shuzu[i].score) { //将遍历的数组数据每一项相加 sum.score = sum.score + shuzu[i].score; } //最后使用sizeof计算平均数 pjs = sum.score/(float)(sizeof(shuzu)/sizeof(shuzu[0])); } //打印最终结果 printf("总数是:%d\\n",sum.score); printf("平均数是:%f\\n",pjs); return 0; }5输出最终的结果长这个样哈!
本人也是新手一枚,还不算是入门,简单分享一下自己的学习笔记,希望有所帮助!有好的建议欢迎留言指正哈!
版权声明:本文标题:C语言结构体当中数组的遍历、求最大最小值和简单的计算 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686889276a114764.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论