输出后有乱码,为什么求数组大小的时候出现了问题
main.c ?
假定程序中已经有三个学生信息了,现在需要删除一个新的学生信息。具体要求同上题:
1)必须用数组来存储学生信息,包括学号,班级,姓名,三门课程的成绩;
2)程序只需要输入一个待删除学生的姓名,如果该学生不存在,则输出原有三个学生排序后的信息(要求按照姓名先后输出);
3)如果指定删除的学生存在,则将其余学生的信息排序输出(要求按照姓名先后输出)
4)已有的三个学生的信息可以在数组初始化时静态赋值,也可以用语句来进行动态赋值。要求这三个学生的信息必须是:
1001,11,zhang,99.5,88.5,89.5,277.5
1002,22,li,77.9,56.5,87.5,221.9
1003,11,wang,92.5,99.0,60.5,252.0
程序输入如下:
li
1003,11,wang,92.5,99.0,60.5,252.0
1001,11,zhang,99.5,88.5,89.5,277.5
或者:
zhao
1002,22,li,77.9,56.5,87.5,221.9
1003,11,wang,92.5,99.0,60.5,252.0
1001,11,zhang,99.5,88.5,89.5,277.5
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int ID[3]={1001,1002,1003};
int class[3]={11,22,11};
char name[3][10]={"zhang","li","wang"};
float score[3][3]={{99.5,88.5,89.5},{77.9,56.5,87.5},{92.5,99.0,60.5}};
float sum[3]={277.5,221.9,252.0};
int main()
{
char new_name[3][10];
int new_ID[3];
int new_class[3];
float new_score[3][3];
float new_sum[3];
int i,j=0,t,n;
char N[10];
scanf("%s",N);
for(i=0;i<3;i++)
{
if(strcmp(N,name[i])!=0)
{
strcpy(new_name[j],name[i]);
new_ID[j]=ID[i];
new_class[j]=class[i];
new_sum[j]=sum[i];
for(t=0;t<3;t++)
{
new_score[j][t]=score[i][t];
}
j++;
}
else
continue;
}
n=sizeof(new_class)/sizeof(new_class[0]);
for(j=0;j<n;j++)
{
printf("%d,%d,%s,%.1f,%.1f,%.1f,%.1f\n",new_ID[j],new_class[j],new_name[j],new_score[j][0],new_score[j][1],new_score[j][2],new_sum[j]);
}
return 0;
}
输出后有乱码,求解,大神?