admin管理员组

文章数量:1794759

C语言结构体当中数组的遍历、求最大最小值和简单的计算

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输出最终的结果长这个样哈!

本人也是新手一枚,还不算是入门,简单分享一下自己的学习笔记,希望有所帮助!有好的建议欢迎留言指正哈!

本文标签: 遍历数组最小值语言结构