C inputSex()和inputAge()的返回值没有返回任何内容?
我试图在函数中输入int或char并返回该值,但它们都没有返回任何内容。我尝试在两个函数中都放入print语句,它们都输出了一些内容,但函数不会返回任何内容。任何信息都会有帮助。提前谢谢C inputSex()和inputAge()的返回值没有返回任何内容?,c,output,C,Output,我试图在函数中输入int或char并返回该值,但它们都没有返回任何内容。我尝试在两个函数中都放入print语句,它们都输出了一些内容,但函数不会返回任何内容。任何信息都会有帮助。提前谢谢 #include "defs.h" #define MAX_CHAR 32 int nameInput(char firstName[MAX_CHAR + 1], char middleInt[2], char lastName[MAX_CHAR + 1], char suffix[4]); int pri
#include "defs.h"
#define MAX_CHAR 32
int nameInput(char firstName[MAX_CHAR + 1], char middleInt[2], char
lastName[MAX_CHAR + 1], char suffix[4]);
int printName(char firstName[MAX_CHAR + 1], char middleInt[2], char
lastName[MAX_CHAR + 1], char suffix[4]);
void emptyStdin(void);
int inputAge(int min, int max);
char inputSex(void);
int printAge(int age);
char printSex(char sex);
int main (void)
{
int choice = 0, age = 0;
char firstName[MAX_CHAR + 1] = {0}, middleInt[2] = {0},
lastName[MAX_CHAR + 1] = {0}, suffix[4] = {0};
char sex = '\0';
do
{
printf("Menu\n");
printf("1. Name\n");
printf("2. Enter Years, Party, Office, and State \n");
printf("3. Enter Age and Sex\n");
printf("4. Enter Contacts \n");
printf("5. Enter Contributions and Lies \n");
printf("6. Display Data \n");
printf("7. Clear all Data \n");
printf("8. Quit\n");
scanf("%d", &choice);
switch (choice)
{
case 1:
emptyStdin();
nameInput(firstName, middleInt, lastName, suffix);
break;
case 2:
break;
case 3:
emptyStdin();
inputAge(21,99);
emptyStdin();
inputSex();
break;
case 4:
break;
case 5:
break;
case 6:
printName(firstName, middleInt, lastName, suffix);
printAge(age);
printSex(sex);
break;
case 7:
break;
case 8:
choice = 8;
break;
default:
printf("Input is invalid\n");
break;
}
} while(choice != 8);
return (0);
}
int nameInput(char firstName[MAX_CHAR + 1], char middleInt[2], char
lastName[MAX_CHAR + 1], char suffix[4])
{
char temp[2] = {0};
int c = 15;
int i = 0;
printf("Type in the politicians first name (max 32 characters): ");
scanf("%s", firstName);
emptyStdin();
printf("Type in the politicians middle initial. If none type 0. (max 1 character): ");
scanf("%s", temp);
c = temp[i];
c = temp[i];
if(c == 0)
{
middleInt[i] = '\0';
}
if(c != 0)
{
strcpy(middleInt, temp);
}
else;
emptyStdin();
printf("Type in the politicians last name (max 32 characters): ");
scanf("%s", lastName);
emptyStdin();
printf("Type in the politicians suffix. If none type 0. (max 3 characters): ");
scanf("%s", suffix);
emptyStdin();
printf("\n\n");
return 1;
}
int printName(char firstName[MAX_CHAR + 1], char middleInt[2], char
lastName[MAX_CHAR + 1], char suffix[4])
{
int i = 0;
printf("*****Unknown/Not Applicable if the output is a 0*****\n\n");
printf("- Politicians first name: ");
for (i = 0; i != ('\n' || '\0'); i++)
{
printf("%s", &firstName[i]);
}
printf("\n");
i = 0;
printf("- Politicians middle initial: ");
if (middleInt[i] != '\0')
{
for (i = 0; i != ('\n' || '\0'); i++)
{
printf("%s", &middleInt[i]);
}
printf("\n");
}
else;
i = 0;
printf("- Politicians last name: ");
for (i = 0; i != ('\n' || '\0'); i++)
{
printf("%s", &lastName[i]);
}
printf("\n");
i = 0;
printf("- Politicians suffix: ");
if (suffix[i] != 0)
{
for (i = 0; i != ('\n' || '\0'); i++)
{
printf("%s", &suffix[i]);
}
}
else;
printf("\n");
return 1;
}
void emptyStdin(void)
{
int c = getchar();
while (c != EOF && c != '\n')
{
{
c = getchar();
}
}
int inputAge(int min, int max)
{
int age = 0, i = 0;
printf("Enter the age of the politician [Between 21 and 99]: ");
i = 1;
for(i = 1; i < 2; i++)
{
scanf("%d", &age);
if (age < min || age > max)
{
printf("That number isnt in the range. Please try again. \n");
i--;
}
else
{
break;
}
}
return age;
}
char inputSex(void)
{
int i = 0;
char sex;
i = 1;
printf("Enter the sex of the politician [Choose either M or F]: ");
for(i = 1; i < 2; i++)
{
scanf("%c", &sex);
if(sex == 'M' || sex == 'F')
{
{
break;
}
else
{
printf("That is not a vaild input. Please try again.");
i--;
}
}
return sex;
}
int printAge(int age)
{
printf("- Age: %d\n", age);
return 1;
}
char printSex(char sex)
{
printf("- Sex: %d\n", sex);
return 1;
}
#包括“defs.h”
#定义最大字符32
int name输入(char firstName[MAX_char+1],char middleInt[2],char
lastName[MAX_CHAR+1],CHAR后缀[4];
int printName(char firstName[MAX_char+1],char middleInt[2],char
lastName[MAX_CHAR+1],CHAR后缀[4];
void emptyStdin(void);
整数输入(整数最小值,整数最大值);
字符输入性(void);
int-printAge(int-age);
char-printSex(char-sex);
内部主(空)
{
整数选择=0,年龄=0;
char firstName[MAX_char+1]={0},middleInt[2]={0},
lastName[MAX_CHAR+1]={0},后缀[4]={0};
字符性别='\0';
做
{
printf(“菜单\n”);
printf(“1.名称\n”);
printf(“2.输入年份、当事人、办公室和州”);
printf(“3.输入年龄和性别”);
printf(“4.输入联系人\n”);
printf(“5.输入贡献和谎言”);
printf(“6.显示数据\n”);
printf(“7.清除所有数据\n”);
printf(“8.Quit\n”);
scanf(“%d”,选择(&C);
开关(选择)
{
案例1:
emptyStdin();
名称输入(firstName、middleInt、lastName、后缀);
打破
案例2:
打破
案例3:
emptyStdin();
输入(21,99);
emptyStdin();
输入性();
打破
案例4:
打破
案例5:
打破
案例6:
printName(firstName、middleInt、lastName、后缀);
印刷时代(时代);
印刷性别(性别);
打破
案例7:
打破
案例8:
选择=8;
打破
违约:
printf(“输入无效\n”);
打破
}
}while(选项!=8);
返回(0);
}
int name输入(char firstName[MAX_char+1],char middleInt[2],char
lastName[MAX_CHAR+1],CHAR后缀[4])
{
字符温度[2]={0};
int c=15;
int i=0;
printf(“输入名字(最多32个字符):”;
scanf(“%s”,名字);
emptyStdin();
printf(“键入中间的首字母。如果没有键入0(最多1个字符):”;
扫描频率(“%s”,温度);
c=温度[i];
c=温度[i];
如果(c==0)
{
middleInt[i]='\0';
}
如果(c!=0)
{
strcpy(中间点,温度);
}
其他的
emptyStdin();
printf(“输入政治家的姓氏(最多32个字符):”;
scanf(“%s”,lastName);
emptyStdin();
printf(“键入后缀。如果没有,则键入0(最多3个字符):”;
scanf(“%s”,后缀);
emptyStdin();
printf(“\n\n”);
返回1;
}
int printName(char firstName[MAX_char+1],char middleInt[2],char
lastName[MAX_CHAR+1],CHAR后缀[4])
{
int i=0;
printf(“******未知/如果输出为0******\n\n则不适用”);
printf(“-政客名字:”);
对于(i=0;i!=(“\n”| |“\0”);i++)
{
printf(“%s”、&firstName[i]);
}
printf(“\n”);
i=0;
printf(“-中间首字母:”);
if(middleInt[i]!='\0')
{
对于(i=0;i!=(“\n”| |“\0”);i++)
{
printf(“%s”和middleInt[i]);
}
printf(“\n”);
}
其他的
i=0;
printf(“-政客姓氏:”);
对于(i=0;i!=(“\n”| |“\0”);i++)
{
printf(“%s”和lastName[i]);
}
printf(“\n”);
i=0;
printf(“-后缀:”);
if(后缀[i]!=0)
{
对于(i=0;i!=(“\n”| |“\0”);i++)
{
printf(“%s”和后缀[i]);
}
}
其他的
printf(“\n”);
返回1;
}
void emptyStdin(void)
{
int c=getchar();
而(c!=EOF&&c!='\n')
{
{
c=getchar();
}
}
整数输入(整数最小值,整数最大值)
{
智力年龄=0,智力年龄=0;
printf(“输入政治家的年龄[在21到99岁之间]:”;
i=1;
对于(i=1;i<2;i++)
{
scanf(“%d”和年龄);
如果(年龄<最小值|年龄>最大值)
{
printf(“该数字不在范围内。请重试。\n”);
我--;
}
其他的
{
打破
}
}
回归年龄;
}
字符输入性(void)
{
int i=0;
性别;
i=1;
printf(“输入政治家的性别[选择M或F]:”;
对于(i=1;i<2;i++)
{
scanf(“%c”、&sex);
如果(sex='M'| | sex='F')
{
{
打破
}
其他的
{
printf(“这不是有效的输入。请重试。”);
我--;
}
}
回归性;
}
整数打印年龄(整数年龄)
{
printf(“-Age:%d\n”,Age);
返回1;
}
字符打印性别(字符性别)
{
printf(“-性别:%d\n”,性别);
返回1;
}
这里是您调用输入的地方
inputAge(21,99);
…注意到缺少任何内容吗?您没有将返回值存储在任何位置。如果您希望它将结果存储到age
(基于对printAge
的调用)几行
age = inputAge(21,99);
case 3:
emptyStdin();
age = inputAge(21,99);
emptyStdin();
sex = inputSex();
break;