C语言问题,怎么执行出来的是乱码

#include"stdio.h"#include"string.h"#defineN2structstudent{longnum;charname[20];charse... #include "stdio.h"
#include "string.h"
#define N 2
struct student
{
long num;
char name[20];
char sex;
int chinese;
int math;
int english;
};
struct student stu[N];
int n;
int choose;
void fun1();
void fun2();
void fun3();
void fun4();

void fun1()
{
int i;
for(i=0;i<N;i++)
{
printf("请输入学号:\n");
scanf("%ld",&stu[i].num);
printf("请输入名字:\n");
scanf("%s",stu[i].name);
getchar();
printf("请输入性别:\n");
scanf("%c",&stu[i].sex);
printf("请输入语文成绩:\n");
scanf("%d",&stu[i].chinese);
printf("请输入数学成绩:\n");
scanf("%d",&stu[i].math);
printf("请输入英语成绩:\n");
scanf("%d",&stu[i].english);
}

}

void fun2()
{ int i;
for(i=0;i<N;i++)
{
printf("%ld\t%s\t%c\n",stu[i].num,stu[i].name,stu[i].sex);
printf("%d\t%d\t%d\n",stu[i].chinese,stu[i].math,stu[i].english);
}
}

void fun3()
{ char name[20];
int k,f=0;
printf("请输入您所要查找的姓名: ");
gets(name);
for(k=0;k<2;k++)
if(strcmp(name,stu[k].name)==0)
{ printf("%ld,%s,%c,%d,%d,%d",stu[k].num,stu[k].name,stu[k].sex,stu[k].chinese,stu[k].math,stu[k].english);
f=1;
}
if(f=0)
printf("木有这个人~~~TOT");

}

void fun4()
{ int k;
char newname[20];
printf("请输入该学生的名字!\n");
gets(newname);
printf("所有学生记录为:\n");
fun2();
for(k=0;k<2;k++)
if(strcmp(newname,stu[k].name)==0)
{
printf("你选择的学生为:\n");
printf("%ld,%s,%c,%d,%d,%d",stu[k].num,stu[k].name,stu[k].sex,stu[k].chinese,stu[k].math,stu[k].english);

stu[k].num=stu[k+1].num;
strcpy(stu[k].name,stu[k+1].name);
stu[k].sex=stu[k+1].sex;
stu[k].chinese=stu[k+1].chinese;
stu[k].math=stu[k+1].math;
stu[k].english=stu[k+1].english;

}

printf("学生记录删除完毕!");

}

void main()
{

printf("*************学生成绩管理程序****************\n");

printf("请输入您要进行的操作:\n");
scanf("%d",&choose);
while(choose!=1&&choose!=2&&choose!=3&&choose!=4)
{ printf("数字多也表按错吖~~~~再按遍吧 ~ 看清楚咯 ^_^");
scanf("%d",&choose);
}
while(choose==1||choose==2||choose==3||choose==4)
{switch(choose)
{
case 1:fun1(); break;
case 2:fun2(); break;
case 3:fun3(); break;
case 4:fun4(); break;
}
printf("请输入您要进行的操作:\n");
scanf("%d",&choose);
}

}

哪地方错了帮我修改一下,好了,我追加积分的啊.
展开
 我来答
85718779
2007-07-05 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:128
采纳率:0%
帮助的人:34万
展开全部
你做什么操作的时候出现乱码了?

我找到你的程序的一个错误:
void fun4()
{ int k;
char newname[20],t[1];
printf("请输入该学生的名字!\n");
这个地方需要加上一个gets(),为了接收你的回车赋,否则这个功能是实现不了的。再有即使加上这句话,你的程序还是有问题的,并不能删除!
gets(t);

gets(newname);
printf("所有学生记录为:\n");
fun2();
for(k=0;k<2;k++)
if(strcmp(newname,stu[k].name)==0)
{
printf("你选择的学生为:\n");
printf("%ld,%s,%c,%d,%d,%d",stu[k].num,stu[k].name,stu[k].sex,stu[k].chinese,stu[k].math,stu[k].english);

stu[k].num=stu[k+1].num;
strcpy(stu[k].name,stu[k+1].name);
stu[k].sex=stu[k+1].sex;
stu[k].chinese=stu[k+1].chinese;
stu[k].math=stu[k+1].math;
stu[k].english=stu[k+1].english;

}

printf("学生记录删除完毕!");

}
WXD110114dccd8
2007-07-05 · TA获得超过2.9万个赞
知道大有可为答主
回答量:1.6万
采纳率:43%
帮助的人:7957万
展开全部
程序没有错误,可以在BCB6正常显示,是系统设置有误,如果想让程序的通用性更好以便不再出现乱码,请将程序中的所有中文都改为英文。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式