c语言账户管理系统的大问题

问题遇到的现象和发生背景

系统是我东拼西凑出来的,除了<6>没做出来以外系统运行没有问题。但我还是想知道系统本身的问题有没有多余的东西之类的,希望有缘人能帮忙指出。(万分感谢!PS:当然,要是能教我<6>怎么做就更好了(尺v尺) )

问题相关代码,请勿粘贴截图
#include<stdio.h>
#include<string.h>
int kyan();   //卡号验证
int SFZ();     //身份证验证
void qukuan();      //取款函数
void cunkuan();     //存款函数
void xiaohu();      //销户函数
void kaihu();       //开户函数
void chaall();      //统计所有用户数
void sfzt();        //单个身份证注册用户总数

char kUser[100][32];               //卡号       
char Xm[100][32];              //用户姓名
char Sfzh[100][32];                //用户身份证号
char theday[100][32];             //开卡日期

float YuE[100];                 //存款余额
int UserShu=0;                 //开卡数
int sfzs=0;                   //身份证号数
 
void main()
{
    int zhiling;          //命令
 
    while(1)
    {
        printf(" ================================================================ \n");
        printf("||                                                              ||\n");
        printf("||         <1> 取款          <4> 销户                           ||\n");
        printf("||         <2> 存款          <5> 统计所有用户数                 ||\n");
        printf("||         <3> 开户          <6> 单个身份证注册用户总数         ||\n");
        printf("||                                                              ||\n");
        printf("||                                                              ||\n");
        printf(" ================================================================ \n");
        printf("请输入您的指令:  ");
        scanf("%d",&zhiling);
        printf("\n");
        switch(zhiling)
        {
        case 1:                                        //取款
            qukuan();
            break;
        case 2:                                        //存款
            cunkuan();
            break;
        case 3:                                        //开户
            kaihu();
            break;
        case 4:                                        //销户
            xiaohu();
            break;
        case 5:                                        //统计所有用户数
            chaall();
            break;
        case 6:                                        //单个身份证注册用户总数
            sfzt();
            break;
        }
    }
 
}
void qukuan()       //取款
{
    int i;
    float n;
    i=kyan();
        printf("请输入您的取款金额: ");
        scanf("%f",&n);
        if(n<=YuE[i])
        {
            printf("请取走您的钞票。\n");
            YuE[i]=YuE[i]-n;
        }
        else
            printf("您的余额不足,请重新输入。\n");
    }
 
void cunkuan()   //存款
{
    int i;
    float n;
    i=kyan();
        printf("请输入您的存款金额: ");
        scanf("%f",&n);
        YuE[i]=YuE[i]+n;
        printf("存款成功!");
        printf("您的当前余额为: %.2f\n",YuE[i]);
    }

void kaihu()   //开户
{
    int i,n=UserShu,j=0;
    float m;
    char User[32],xm[32];
    char Sfz[32],thedays[32]; 
    printf("请输入您的卡号: ");
    getchar();
    scanf("%s",User);

    for(i=0;i<n+1;i++)
    {
        if(strcmp(User,kUser[i])==0)
        {
            printf("该卡号已存在\n");
            break;
        }
        else
        {
            strcpy(kUser[UserShu],User);

            while(j!=1)
            {
                printf("请输入您姓名: ");
                scanf("%s",xm);
                printf("请输入您的身份证号: ");
                scanf("%s",Sfz);
                printf("请输入您的开卡日期: ");
                scanf("%s",thedays);
                    printf("请输入您的存款金额: ");
                    scanf("%f",&m);
                    strcpy(Xm[UserShu],xm);
            strcpy(Sfzh[UserShu],Sfz);
            strcpy(theday[UserShu],thedays);
                    YuE[UserShu]=m;
                    j=1;
                }
            }
            UserShu++;
            break;
        }
    }
 
void xiaohu()    //销户
{
    int i,n,m;
    i=kyan();
        m=SFZ();
    while(1)
    {
        printf("您确定要注销您的账户?\n   <1>确认    <2>取消   \n");
        scanf("%d",&n);
        if(n==1)
        {
            for(;i<UserShu;i++)
            {
                strcpy(kUser[i],kUser[i+1]);
                strcpy(Sfzh[i],Sfzh[i+1]);
                YuE[i]=YuE[i+1];
            }
        }
    UserShu--;
    printf("销户成功!\n");
    m=0;
    break;
    }
}
 

void chaall()     //统计所有用户数
{
    int i;
    for(i=0;i<UserShu;i++)
    i+1;
    printf("总用户数:%d\n",i); 
}

void sfzt()     //单个身份证注册用户总数
{
    int i;
    i=SFZ();

    printf("总用户数:%d\n",i); 
}
int kyan()     //卡号验证
{
    int m=1,i;
    char User[32];
    while(m==1)
    {
        printf("请输入您的卡号: ");
        scanf("%s",User);
        for(i=0;i<UserShu;i++)
            if(strcmp(kUser[i],User)==0)
            {
                m=0;
                break;
            }
        if(i==UserShu)
            printf("该用户不存在,请确认后再输入。 \n");
    }
    return i;
}
 
int SFZ()
{
    int m=1,i;
    char sfz[32];
    while(m==1)
    {
        printf("请输入您的身份证号: ");
        scanf("%s",sfz);
        for(i=0;i<UserShu;i++)
            if(strcmp(Sfzh[i],sfz)==0)
            {
                m=0;
                break;
            }
        else
            printf("您输入的身份证不正确,请重新输入。\n");
    }
    return i;
}

我想要达到的结果

能教我<6>怎么做吗?(尺v尺)

这个统计所有用户数的函数有问题的,for循环里 i+1; 是干嘛呢?

void chaall()     //统计所有用户数
{
    int i;
    for(i=0;i<UserShu;i++)
    i+1;
    printf("总用户数:%d\n",i); 
}


<6> 单个身份证注册用户总数 ,是想统计用身份证注册的用户数?

同一身份证是可以注册多个账户的,我想通过输入身份证,统计这一个身份证注册了多少个账户。
for循环里 i+1 额,应该是顺手打上去了,回头就改过来。谢谢指出