如何使用函数将用户输入读入数组?定义错误?

时间:2015-04-15 07:27:05

标签: c arrays function

为什么我的函数调用不正常?我在我的程序开始时,我正在尝试将用户数据读入两个单独的数组。一个数组用于存储字符串,一个用于整数,然后打印输入的内容。这是一个课堂小组项目,但是我的小组没有上课,所以我很感激我的帮助。

我试图添加此冒泡排序,但是正确定义SIZE会给我一个错误......

    #define SIZE 5
#include <stdio.h>
#include <string.h>
#include <stdio.h>


void input(char fullname[][25], int age[]);
void output(char fullname[][25], int age[]);
int compare(int x, int y);
void bubbleSort(int fullname[],int SIZE );

int main(int argc, char *argv[]) 
{
    char fullname[SIZE][25];
    int age[SIZE];
    // promt user for names and ages
    input(fullname, age);
    //output unsorted names and ages
    output(fullname, age);


    return 0;
}

void input(char fullname[][25], int age[]) 
{
    int i;
    for (i = 0; i < SIZE; i++) 
    {
        fflush(stdin);
        printf("Enter a full name\n");
        //scanf("%[\^n]\n", fullname[i]);
        fgets (fullname[i],40, stdin);
        printf("Enter the age\n");
        scanf("%d", &age[i]);

    }
}

void output(char fullname[][25], int age[]) 
{
    int i;
    for (i = 0; i < SIZE; i++)
        printf("%s, %d\n", fullname[i], age[i]);
}

2 个答案:

答案 0 :(得分:1)

这可能会有所帮助

#include <stdio.h>

#define SIZE 5

void input(char fullname[][25], int age[]);
void output(char fullname[][25], int age[]);

int main(int argc, char *argv[]) {
    char fullname[SIZE][25];
    int age[SIZE];
    input(fullname, age);
    output(fullname, age);
    return 0;
}

void input(char fullname[][25], int age[]) {
    int i;
    for (i = 0; i < SIZE; i++) {
        printf("Enter a full name\n");
        scanf("%s", fullname[i]);
        printf("Enter the age\n");
        scanf("%d", &age[i]);
    }
}

void output(char fullname[][25], int age[]) {
    int i;
    for (i = 0; i < SIZE; i++)
        printf("%s, %d\n", fullname[i], age[i]);
}

答案 1 :(得分:-1)

2解决方案:

首先,您的电话可能是:

fullname = input(fullname, age);

在你的输入功能中,你会返回一些东西,为什么不把它取回来?

其次,您也可以尝试为您的输入提供指向fullname的指针,您正在对阵列进行写入,但您的修改不会在“input”函数之外进行:

电话:

input(&fullname, age);

... 定义

input(char *fullname[][25], int age[]) {}

我现在没有电脑和我一起测试这段代码,但想法就在这里。