带功能的菜单

时间:2013-05-10 16:43:25

标签: c function

我对c语言的功能有疑问。我有一个菜单插入调用函数的数字,但问题是我不想使用for,我想每次按菜单中的选项a逐个插入数字。我还想打印我选择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]);
    }
}

2 个答案:

答案 0 :(得分:0)

您应该在主函数中声明一个“x”变量。

int x = 0;

在用户选择“插入”选项x

的增量后添加
insert(num,largo);
x++;

最后更改“插入”功能以接受“x”而不是声明它。

void insert (int a[], int lenght, int x){
    printf("\nInsert your number %d: ", x);
    scanf("%d", &a[x]);
}

答案 1 :(得分: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]);
}