为什么我的函数调用不正常?我在我的程序开始时,我正在尝试将用户数据读入两个单独的数组。一个数组用于存储字符串,一个用于整数,然后打印输入的内容。这是一个课堂小组项目,但是我的小组没有上课,所以我很感激我的帮助。
我试图添加此冒泡排序,但是正确定义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]);
}
答案 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[]) {}
我现在没有电脑和我一起测试这段代码,但想法就在这里。