每次我试图执行程序时,它都会重复输入两次 #包括 #包括 #包括 typedef int tab[20]; int大小、操作; 无效SaisirNombreComptes(无效) { printf(“Merci davoir saisir le nombr

每次我试图执行程序时,它都会重复输入两次 #包括 #包括 #包括 typedef int tab[20]; int大小、操作; 无效SaisirNombreComptes(无效) { printf(“Merci davoir saisir le nombr,c,C,每次我试图执行程序时,它都会重复输入两次 #包括 #包括 #包括 typedef int tab[20]; int大小、操作; 无效SaisirNombreComptes(无效) { printf(“Merci davoir saisir le nombre des comptes bancaire:”);scanf(“i”和大小); } 无效SaisirComptesEtSoldes(制表符制表符、制表符制表符、整数大小) { for(inti=1;iinc,索引从0..n-1,因此for循环

每次我试图执行程序时,它都会重复输入两次
#包括
#包括
#包括
typedef int tab[20];
int大小、操作;
无效SaisirNombreComptes(无效)
{
printf(“Merci davoir saisir le nombre des comptes bancaire:”);scanf(“i”和大小);
}
无效SaisirComptesEtSoldes(制表符制表符、制表符制表符、整数大小)
{

for(inti=1;iinc,索引从
0..n-1
,因此for循环应该是
for(int i=0;i@user3121023#用户3121023谢谢它起作用了我安抚that@user3121023您似乎已经找到了答案,至少是对所问问题的答案。请将其转换为正式答案,我想将其从未回答的问题列表中删除。为了得到一个好的答案,我建议请求Paul允许我也使用他的贡献。@user3121023谢谢这对我起了作用that@Yunnosch今天是我在stackoverflow的第一天,老实说,我对这个网站不太了解,也不知道如何使用它。很抱歉,我只是在寻找我的问题的解决方案时找到了它。这里仍然是新的C,索引从
0..n-1
,所以你的for循环应该是
for(int i=0;i@user3121023#用户3121023谢谢它起作用了我安抚that@user3121023您似乎已经找到了答案,至少是对所问问题的答案。请将其转换为正式答案,我想将其从未回答的问题列表中删除。为了得到一个好的答案,我建议请求Paul允许我也使用他的贡献。@user3121023谢谢这对我起了作用that@Yunnosch今天是我在stackoverflow的第一天,老实说,我对这个网站不太了解,也不知道如何使用它。很抱歉,我在这里寻找新问题的解决方案时发现了它
#include<stdio.h>
#include<stdio.h>
#include<windows.h>
typedef int tab[20];
int Size,Operation;
void SaisirNombreComptes(void)
{
    printf("Merci davoir saisir le nombre des comptes bancaire: ");scanf("%i",&Size);
}

void SaisirComptesEtSoldes(tab TabComptes, tab TabSoldes, int Size)
{
    for(int i=1;i<=Size;i++)
    {
        printf("donner le numero du compte %i: ",i);scanf("%i",&TabComptes[i]);

        printf("saisir l& solde du compte {%i} TND: ",TabComptes[i]);scanf("%i",&TabSoldes[i]);
    }
}

void AfficherComptesInfo(tab TabComptes, tab TabSoldes, int Size)
{

    printf("Tableau des comptes");

    printf("\n");

    for(int i=1;i<=Size;i++)
    {
        printf("[%i]",TabComptes[i]);
    }
    printf("\n");


    printf("Tableau des Soldes");

    printf("\n");

    for(int i=1;i<=Size;i++)
    {
        printf("[%i]",TabSoldes[i]);
    }
    printf("\n");
    printf("\n");
}

int RechercherComptePos(tab TabComptes, int Size, int x)
{
    int i=1;
    int Pos;

    while( (i<=Size) && (TabComptes[i] != x) )
    {
        i+=1;
    }

    if(i<=Size)
        Pos = i;
    else
        Pos = -1;
    return Pos;
}

void AjouterCompte(tab TabComptes, tab TabSoldes, int *Size, int Compte, int Montant)
{
    *Size = *Size + 1;
    TabComptes[*Size] = Compte;
    TabSoldes[*Size] = Montant;
}

void SupprimerCompte(tab TabComptes, tab TabSoldes, int *Size, int Compte)
{
    int ComptePos = RechercherComptePos(TabComptes,*Size,Compte);

    for(int i=ComptePos;i<=*Size;i++)
    {
        TabComptes[i] = TabComptes[i+1];
        TabSoldes[i] = TabSoldes[i+1];
    }

    *Size = *Size - 1;

}

void DesposerSoldes(tab TabComptes, tab TabSoldes, int Size, int Compte, int Montant)
{
    int ComptePos = RechercherComptePos(TabComptes,Size,Compte);

    TabSoldes[ComptePos]+=Montant;
}

void RetirerSoldes(tab TabComptes, tab TabSoldes, int Size, int Compte, int Montant)
{
    int ComptePos = RechercherComptePos(TabComptes,Size,Compte);

    TabSoldes[ComptePos]-=Montant;
}

void TransfererSoldes(tab TabComptes, tab TabSoldes,int Size,int Compte1, int Compte2, int Montant)
{
    int Transferer = RechercherComptePos(TabComptes,Size,Compte1);

    int Recevoir = RechercherComptePos(TabComptes,Size,Compte2);

    if(TabSoldes[Transferer]>=Montant)
    {
        TabSoldes[Transferer] -= Montant;

        TabSoldes[Recevoir] += Montant;
    }
    else
    {
        printf("Operation echoue, solde insuffisante");
    }
}

void Menu(void)
{
    system("cls");
    printf("\n\nChoisir un Operation a faire :\n1:Ajouter un Compte:\n2:Supprimer un Compte\n3:Desposer un Solde\n4:Retirer un solde\n5:Transfer un montant\n6:Afficher les information du compte\nTaper quelque touche pour quitter" );
    scanf("%i",&Operation);
}


int main()
{
    tab TabSoldes,TabComptes;

    int NumCompte,Montant,NumCompte1,NumCompte2,i;

    bool encore = true;

    char AfficheMenu;

    i = 0;

    SaisirNombreComptes();

    SaisirComptesEtSoldes(TabComptes,TabSoldes,Size);

    Menu();

    while(encore == true)
    {
        switch(*Operation)
        {
            case 1:
                printf("Donner le numero du compte a ajouter :");scanf("%i",&NumCompte);
                printf("Donner le Montant");scanf("%i",&Montant);
                AjouterCompte(TabComptes,TabSoldes,&Size,NumCompte,Montant);
                printf("Voulez-vous voir le menu Taper 'O' pour OUI 'N' pour NON");scanf("%c",&AfficheMenu);
                if((AfficheMenu=='O') || (AfficheMenu=='o'))
                {
                    Menu();
                }
                else if(AfficheMenu=='N' || AfficheMenu=='n')
                    encore = false;
                else
                    printf("error");
            break;

            case 2:
                printf("Donner le numero du compte a supprimer :");scanf("%i",&NumCompte);
                SupprimerCompte(TabComptes,TabSoldes,&Size,NumCompte);
                printf("Voulez-vous voir le menu Taper 'O' pour OUI 'N' pour NON");scanf("%c",&AfficheMenu);
                if((AfficheMenu == 'O') || (AfficheMenu == 'o'))
                {
                    Menu();
                }
                else if(AfficheMenu == 'N' || AfficheMenu =='n')
                    encore = false;
                else
                    printf("error");
            break;

            case 3:
                printf("Donner le numero du compte pour desposer d'argent: ");scanf("%i",&NumCompte);
                printf("Donner le montant: ");scanf("%i",&Montant);
                DesposerSoldes(TabComptes,TabSoldes,Size,NumCompte,Montant);
                printf("Voulez-vous voir le menu Taper 'O' pour OUI 'N' pour NON");scanf("%c",&AfficheMenu);
                if((AfficheMenu == 'O') || (AfficheMenu == 'o'))
                {
                    Menu();
                }
                else if(AfficheMenu == 'N' || AfficheMenu =='n')
                    encore = false;
                else
                    printf("error");
            break;

            case 4:
                printf("Donner le numero du compte pour retirer d'argent: ");scanf("%i",&NumCompte);
                printf("Donner le montant: ");scanf("%i",&Montant);
                RetirerSoldes(TabComptes,TabSoldes,Size,NumCompte,Montant);
                printf("Voulez-vous voir le menu Taper 'O' pour OUI 'N' pour NON");scanf("%c",&AfficheMenu);
                if((AfficheMenu == 'O') || (AfficheMenu == 'o'))
                {
                    Menu();
                }
                else if(AfficheMenu == 'N' || AfficheMenu =='n')
                    encore = false;
                else
                    printf("error");
            break;

            case 5:
                printf("Donner le numero du compte: ");scanf("%i",&NumCompte1);
                printf("Donner le numero du compte destinaire: ");scanf("%i",&NumCompte2);
                printf("Donner le montant a transferer");scanf("%i",&Montant);
                TransfererSoldes(TabComptes,TabSoldes,Size,NumCompte1,NumCompte2,Montant);
                printf("Voulez-vous voir le menu Taper 'O' pour OUI 'N' our NON");scanf("%c",&AfficheMenu);
                if((AfficheMenu == 'O') || (AfficheMenu == 'o'))
                {
                    Menu();
                }
                else if(AfficheMenu == 'N' || AfficheMenu =='n')
                    encore = false;
                else
                    printf("error");
            break;

            case 6: 
                AfficherComptesInfo(TabComptes,TabSoldes,Size);
                printf("Voulez-vous voir le menu Taper 'O' pour OUI 'N' our NON");scanf("%c",&AfficheMenu);
                if((AfficheMenu == 'O') || (AfficheMenu == 'o'))
                {
                    Menu();
                }
                else if(AfficheMenu == 'N' || AfficheMenu =='n')
                    encore = false;
                else
                    printf("error");
            break;
        }
        i=i+1;
        printf("\n%i\n",i);
    }
}