-3

C言語の関数について質問です。関数を呼び出す数字を挿入するメニューがありますが、問題は、for を使用したくないということです。メニューのオプション a を押すたびに、数字を 1 つずつ挿入したいのです。また、bオプションを選択したときに入力した数字だけを印刷したいです。カウンターの問題を修正する方法がわかりません。文法上の誤りがあれば申し訳ありません。英語は私の母国語ではありません。

#include<stdio.h>
//Functions
char menu();
void insert (int[],int);
void print (int[],int);

//******************************
//CUERPO
int main (){
    int lenght=5;
    int num [lenght];
    char option;

    while((option=menu())!='x'){

        switch (option){

        case 'a':
            insert(num,largo);
            break;

        case 'b':
            print (num,largo);
            break;
        }
    }
    system ("pause");  
    return 0;
}

/* Codes ************************************************************** */

char menu (){
    char option;
    printf("\nInsert an option :" );
    printf("\nA. insert  :" );
    printf("\nB. print :" );

    scanf("%c", &option);
    fflush (stdin);
    return option;
}

void insert (int a[], int lenght){ // Here i have the problem
    int x=0;  
    printf("\nInsert your number %d: ", x);
    scanf("%d", &a[x]);
    x++;
}

void print (int a[], int lenght){
    int y;
    for(y=0; y<largo; y++){
        printf("\nThe numer you have entered are %d: ", a[y]);
    }
}
4

2 に答える 2

0
#include <stdio.h>
#include <ctype.h>
//Functions
char menu();
void insert (int[],int);
void print (int[],int);
//******************************
//CUERPO
int main (){
    int lenght=5;
    int num [lenght];
    int largo=-1;
    char option;

    while(tolower((option=menu()))!='x'){

        switch (option){

        case 'a':
            if(largo == 4){
                printf("\nalready full inputted!!\n");
                break;
            }
            insert(num,++largo);
            break;

        case 'b':
            print (num,largo);
            break;
        }
    }
    system ("pause");  
    return 0;
}

/* Codes ************************************************************** */

char menu (){
    char option;
    printf("\nInsert an option :" );
    printf("\nA. insert  :" );
    printf("\nB. print :" );
    printf("\nX. quit. >");

    scanf(" %c", &option);
    while(fgetc(stdin)!='\n');//skip over input
//    fflush (stdin);
    return option;
}

void insert (int a[], int lenght){ // Here i have the problem
    printf("\nInsert your number %d: ", lenght);
    scanf("%d%*c", &a[lenght]);
}

void print (int a[], int lenght){
    printf("\nThe numer you have entered are %d: ", a[lenght]);
}
于 2013-05-11T00:02:11.623 に答える