C语言读程序

C语言读程序,第1张

太乱了,先帮你整理整理格式,让人看着顺一点再说问题。

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])

其它函数的也一样


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10947404.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存