不理解,为什么你要把分数定义成 char,用 int 或者 float 不好么?
如果非要这么定义,你可以用 atoi 先将字符串转换为整数,然后计算,再用 itoa 将整数转换成字符串
换个数据类型
ElemType elt;
elt.fenshu=elt.ks*0.7+elt.ps*0.1+elt.sy*0.2
不需要数组,供参考:
#include <stdio.h>
typedef struct {
char num[12];
char name[20];
float ps; //平时分数
float sy; //实验分数
float ks; //期考分数
float fenshu;//最终期评分数
}ElemType;
ElemType stu[10];
int main()
{
int i;
for (i = 0; i < 10; i++) // 输入10个学生相应信息,计算最终期评分数
{
scanf("%s %s %f %f %f", stu[i].num, stu[i].name, &stu[i].ps, &stu[i].sy, &stu[i].ks);
stu[i].fenshu = stu[i].ks * 0.7 + stu[i].ps * 0.1 + stu[i].sy * 0.2;
}
return 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话: