C语言数组问题
使用字符数组和实型数组分别储存学生姓名和成绩,并通过读学生成绩的排序,按照名词输出字符数组中对应的学生姓名。以下是写的内容,请各位大神查看错误在哪里,为何输入完数据就无法...
使用字符数组和实型数组分别储存学生姓名和成绩,并通过读学生成绩的排序,按照名词输出字符数组中对应的学生姓名。以下是写的内容,请各位大神查看错误在哪里,为何输入完数据就无法继续了,一开始没用strcpy还能往下继续一步,然后退出,最开始直接cMin=cName[i]这样写的。一上午也没研究明白,请大神出马吧,用我这个思路怎么可以解决。#include<stdio.h>#include<string.h>main(){ char cName[5],cMin[1]; float fScore[5],fMin; int i,j,iPos; printf("输入学生的姓名和成绩:\n"); for(i=0;i<5;i++) { printf("cName[%d]是:",i); scanf("%s",&cName[i]); printf("成绩为:"); scanf("%f",&fScore[i]); } for(i=0;i<5;i++) { fMin=fScore[i]; iPos=i; strcpy(cMin[1],cName[i]); for(j=i+1;j<5;j++) { if(fScore[j]<fMin) { fMin=fScore[j]; strcpy(cMin[1],cName[j]); iPos=j; } } fScore[iPos]=fScore[i]; fScore[i]=fMin; strcpy(cName[iPos],cName[i]); strcpy(cName[i],cMin[1]); } printf("成绩由低到高的顺序为:\n"); for(i=0;i<5;i++) { printf("%s的成绩为%f\n",cName[i],fScore[i]); } }
展开
2个回答
展开全部
#include<stdio.h>
#include<string.h>
main() {
char cName[5],cMin[2];
float fScore[5],fMin;
int i,j,iPos;
printf("ÊäÈëѧÉúµÄÐÕÃûºÍ³É¼¨:\n");
for(i=0; i<5; i++) {
printf("cName[%d]ÊÇ£º",i);
scanf("%s",&cName[i]);
printf("³É¼¨Îª£º");
scanf("%f",&fScore[i]);
}
for(i=0; i<5; i++) {
fMin=fScore[i];
iPos=i;
cMin[1]=cName[i];
for(j=i+1; j<5; j++) {
if(fScore[j]<fMin) {
fMin=fScore[j];
cMin[1]=cName[j];
iPos=j;
}
}
fScore[iPos]=fScore[i];
fScore[i]=fMin;
cName[iPos]=cName[i];
cName[i]=cMin[1];
}
printf("³É¼¨Óɵ͵½¸ßµÄ˳ÐòΪ:\n");
for(i=0; i<5; i++) {
printf("%cµÄ³É¼¨Îª%f\n",cName[i],fScore[i]);
}
}
你的strcpy对char调用
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询