太乱了,先帮你整理整理格式,让人看着顺一点再说问题。
int shanchu(jilu biao1[],int k_biao1){
char c
for()
{
system("CLS")
P("\n\n\n\n\n\n")
P("\t\t\t 1.按照记录号删除\n")
P("\t\t\t 2.按照学号删除\n")
P("\t\t\t 3.按照姓名删除\n")
P("\t\t\t 4.全部删除\n")
P("\t\t\t 5.查看回收站\n")
P("\t\t\t 6.撤销删除\n\n")
P("\t\t\t 7.清空回收站(注意不可恢复)\n\n")
P("\t\t\t Esc. 返回\n\n")
P("\n\t\t\t 选择?")
c=getch()
if(c==27)
{
break
}
switch(c)
{
case '1':
s_jiluhao(biao1,k_biao1)
break
case '2':
s_xuehao(biao1,k_biao1)
break
case '3':
s_xingming(biao1,k_biao1)
break
case '4':
s_quanbu(biao1,k_biao1)
break
case '5':
s_huishouzhan(biao1,k_biao1)
break
case '6':
s_chexiao(biao1,k_biao1)
break
case '7':
k_biao1=s_qingkong(biao1,k_biao1)
break
}
}
return k_biao1
}
void s_jiluhao(jilu biao1[],int k_biao1)
{
int i,n1,n2
jilu *p
system("CLS")
P("\n\n\n\n\t\t请输入起始记录流水号:")
scanf("%d",&n1)
P("\n\n\t\t请输入结束记录流水号:")
scanf("%d",&n2)
if(n1<0)
{
n1=0
}
if(n1>=k_biao1)
{
return
}
if(n2<0)
{
return
}
if(n2>=k_biao1)
{
n2=k_biao1
}
if(n2<n1)
{
return
}
system("CLS")
for(p=&biao1[n1],i=n1 i<=n2 i++,p++)
{
p->sc='*'
}
stop()
}
void s_xuehao(jilu biao1[],int k_biao1)
{
char x[20]
jilu *p
int i
system("CLS")
P("\n\n\n\n\t\t请输入学号:")
scanf("%s",x)
system("CLS")
for(i=0,p=biao1 i<k_biao1 i++,p++)
if(strcmp(p->xh,x)==0)
{
p->sc='*'
}
stop()
}
void s_xingming(jilu biao1[],int k_biao1)
{
char x[20]
jilu *p
int i
system("CLS")
P("\n\n\n\n\t\t请输入姓名:")
scanf("%s",x)
system("CLS")
for(i=0,p=biao1 i<k_biao1 i++,p++)
if(strcmp(p->xm,x)==0)
{
p->sc='*'
}
stop()
}
void s_quanbu(jilu biao1[],int k_biao1)
{
jilu *p
int i
for(i=0,p=biao1 i<k_biao1 i++,p++)
{
p->sc='*'
}
stop()
}
void s_huishouzhan(jilu biao1[],int k_biao1)
{
int i
jilu *p
system("CLS")
PBT
for(p=biao1,i=0 i<k_biao1 i++,p++)
if(p->sc=='*')
{
PJL
}
stop()
}
void s_chexiao(jilu biao1[],int k_biao1)
{
jilu *p,*q
char c
system("cls")
PBT
for(p=biao1,q=biao1+k_biao1 p<q p++)
{
if(p->sc==' ')
{
continue
}
PJL
P("撤销删除?(y/n)")
c=getch()
if(c=='Y'||c=='y')
{
p->sc=' '
}
}
stop()
}
int s_qingkong(jilu biao1[],int k_biao1)
{
jilu *p1,*p2,*q
p1=p2=biao1
q=biao1+k_biao1
for( p1<q p1++)
{
if(p1->sc=='*')
{
continue
}
if(p1==p2)
{
p2++
continue
}
strcpy(p2->xh,p1->xh)
strcpy(p2->xm,p1->xm)
strcpy(p2->cj,p1->cj)
p2->sc=p1->sc
p2++
}
P("\n\n\t\t回收站已成功清空了%d条记录\n",p1-p2)
k_biao1-=p1-p2
stop()
return k_biao1
}
其实你看看代码,你的每一个函数里的第二个for循环的变量都不对,容易造成死循环,如下面的函数
void input_stu(void){int i,j
for(i=0i<Ni++)
{printf("\ninput score of student%2d:\n",i+1)
for(j=0i<Mj++)
scanf("%f",&score[i][j])
}
}
第二个for循环的变量应该改为for(j=0j<Mj++)
scanf("%f",&score[i][j])
其它函数的也一样
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)