C语言问题求高手解答
#include<stdio.h>#include<conio.h>#include<string.h>main(void){intd[1000];intb[1000];...
#include<stdio.h>
#include<conio.h>
#include <string.h>
main(void) {
int d[1000];
int b[1000];
int c[1000][20];
int i=0,m,v=0,sum,n,k=0,j,t,z;
char *a[1000];
char x;
double f[1000];
printf("请输入学生人数n\n");
scanf("%d",&n);
printf("请输入科目总数m\n");
scanf("%d",&m);
do{
sum=0;
printf("请输入第%d个学生的姓名\n",i+1);
scanf("%s",&a[i]);
printf("请输入第%d个学生的学号\n",i+1);
scanf("%d",&b[i]);
do{
printf("请输入第%d个学生的第%d科成绩\n",i+1,k+1);
scanf("%d",&c[i][k]);
sum=sum+c[i][k];
k++;
}while(k<m);
d[i]=sum;
i++;
k=0;
}while(i<n);
printf("\n成绩录入完成!\n");
for(i=0;i<n;i++){
f[i]=d[i]/m;
};
for(i=0;i<n;i++){
for(j=i+1;j<n;j++){
if(d[j]<d[i]){
t=d[j];
d[j]=d[i];
d[i]=t;
t=b[j];
b[j]=b[i];
b[i]=t;
strcpy(x,a[j]);
a[j]=a[i];
a[i]=x;
for(k=0;k<m+1;k++
){
t=c[j][k];
c[j][k]=c[i][k];
c[i][k]=t;
};
};
};
};
printf("\n 名次表 \n"); //当学生人数为2时可以打印表格 但当人数为3时 就会弹出unhandled exception 不知道为什么求大神解答
printf("-----------------------------------------------------\n");
printf("学生姓名 学号 总分 平均分");
for(i=1;i<m+1;i++){
printf(" 科目%d ",i);
};
printf("\n");
for(i=0;i<n;i++){
printf(" %s %-8d %-3d %.2f" ,&a[i],b[i],d[i],f[i]);
for(k=0;k<m;k++){
printf(" %d " ,c[i][k]);
};
printf("\n");
};
getch();
} 展开
#include<conio.h>
#include <string.h>
main(void) {
int d[1000];
int b[1000];
int c[1000][20];
int i=0,m,v=0,sum,n,k=0,j,t,z;
char *a[1000];
char x;
double f[1000];
printf("请输入学生人数n\n");
scanf("%d",&n);
printf("请输入科目总数m\n");
scanf("%d",&m);
do{
sum=0;
printf("请输入第%d个学生的姓名\n",i+1);
scanf("%s",&a[i]);
printf("请输入第%d个学生的学号\n",i+1);
scanf("%d",&b[i]);
do{
printf("请输入第%d个学生的第%d科成绩\n",i+1,k+1);
scanf("%d",&c[i][k]);
sum=sum+c[i][k];
k++;
}while(k<m);
d[i]=sum;
i++;
k=0;
}while(i<n);
printf("\n成绩录入完成!\n");
for(i=0;i<n;i++){
f[i]=d[i]/m;
};
for(i=0;i<n;i++){
for(j=i+1;j<n;j++){
if(d[j]<d[i]){
t=d[j];
d[j]=d[i];
d[i]=t;
t=b[j];
b[j]=b[i];
b[i]=t;
strcpy(x,a[j]);
a[j]=a[i];
a[i]=x;
for(k=0;k<m+1;k++
){
t=c[j][k];
c[j][k]=c[i][k];
c[i][k]=t;
};
};
};
};
printf("\n 名次表 \n"); //当学生人数为2时可以打印表格 但当人数为3时 就会弹出unhandled exception 不知道为什么求大神解答
printf("-----------------------------------------------------\n");
printf("学生姓名 学号 总分 平均分");
for(i=1;i<m+1;i++){
printf(" 科目%d ",i);
};
printf("\n");
for(i=0;i<n;i++){
printf(" %s %-8d %-3d %.2f" ,&a[i],b[i],d[i],f[i]);
for(k=0;k<m;k++){
printf(" %d " ,c[i][k]);
};
printf("\n");
};
getch();
} 展开
1个回答
展开全部
//问题主要在于保存姓名的数组应该定义成数组,而不是只定义指针,而没有分配实际的存储空间
#include<stdio.h>
#include<conio.h>
#include <string.h>
main(void) {
int d[1000];
int b[1000];
int c[1000][20];
int i=0,m,v=0,sum,n,k=0,j,t,z;
char a[1000][20]; //char *a[1000];
char x[20]; //char x;
double f[1000];
printf("请输入学生人数n\n");
scanf("%d",&n);
printf("请输入科目总数m\n");
scanf("%d",&m);
do{
sum=0;
printf("请输入第%d个学生的姓名\n",i+1);
scanf("%s",&a[i]);
printf("请输入第%d个学生的学号\n",i+1);
scanf("%d",&b[i]);
do{
printf("请输入第%d个学生的第%d科成绩\n",i+1,k+1);
scanf("%d",&c[i][k]);
sum=sum+c[i][k];
k++;
}while(k<m);
d[i]=sum;
i++;
k=0;
}while(i<n);
printf("\n成绩录入完成!\n");
for(i=0;i<n;i++){
f[i]=d[i]/m;
};
for(i=0;i<n;i++){
for(j=i+1;j<n;j++){
if(d[j]<d[i]){
t=d[j];
d[j]=d[i];
d[i]=t;
t=b[j];
b[j]=b[i];
b[i]=t;
strcpy(x,a[j]);
strcpy(a[j],a[i]); //a[j]=a[i];
strcpy(a[i],x); //a[i]=x;
for(k=0;k<m+1;k++
){
t=c[j][k];
c[j][k]=c[i][k];
c[i][k]=t;
};
};
};
};
printf("\n 名次表 \n"); //当学生人数为2时可以打印表格 但当人数为3时 就会弹出unhandled exception 不知道为什么求大神解答
printf("-----------------------------------------------------\n");
printf("学生姓名 学号 总分 平均分");
for(i=1;i<m+1;i++){
printf(" 科目%d ",i);
};
printf("\n");
for(i=0;i<n;i++){
printf(" %s %-8d %-3d %.2f" ,&a[i],b[i],d[i],f[i]);
for(k=0;k<m;k++){
printf(" %d " ,c[i][k]);
};
printf("\n");
};
getch();
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询