C语言 怎么分别输入字符型变量

分支结构程序设计
设计一个友好的人机交互系统,该系统功能包括:
1.用户输入姓名,和性别,系统问候 **先生(女士),您好!
2.用户输入出生年份,根据年龄和性别,(年龄标准自己定义),向用户推荐一部合适的书(电影).

这是我们的一个作业,做的时候发现输入变量的时候必须一次性输入完,否则没法继续运行下去,求问怎么使之分开输入字符呢?还有就是怎么输入一个完整的名字而不是一个字符呢?
下面是部分程序:

{

int a;

char name,gender,birth;

// insert code here...

printf("What's your name and gender?(one letter for name and one letter for gender)\n");

printf("gender(f for female and m for male)\n");

name=getchar();

gender=getchar();

if(gender=='f')

printf("hello,Miss.%c\n",name);

if(gender=='m')

printf("hello, Mr.%c\n",name);

if(gender!='f'&&gender!='m')

printf("hello,%c\n",name);

puts("when you were born(k:1996~2014,a:1960~1995,o:1900~1959)");

if(gender=='m')

{

scanf("%c",&birth);

printf("Birthyear:");

switch(birth)

{

case'k':printf("my dear boy, <the adventure>is the best for you \n");break;

case'a':printf("my dear sir, <the dream>is the best for you \n");break;

case'o':printf("my respected sir , <the buddist>is the best for you \n");break;

default:printf("enter data error!\n");

}

1、打开编译器,现在演示的是C-FREE。

2、Ctrl+N新建一个文件。

3、运用scanf语句输入程序:#include <stdio.h>int main(){int a;scanf("%d",&a);printf("%d",a); }。

4、按F9进行编译。

5、按F5运行程序。

6、输入变量是什么输出变量就是什么,体验scanf语句运用格式。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-25

    输入单个字符变量的方法有:getchar() ,  scanf("%c") 等,如果输入一个字符就按一次回车,则需要在输入完成后,进行回车过滤,即,在上面的命令后,再加一个getchar();

    输入完整的名字,名字组成是多个字符,其中有可能有空格,所以,存储名字的变量要是字符数组,输入命令要用gets()函数。gets()函数会自动清理回车符!

参考代码:

#include <stdio.h>
void main()
{
    char ch ;
    char name[30];
    int i;
    for( i=0;i<3;i++ ) //循环三次,分别输入一个字符和一个名字,以验证方法
    {
        printf("input a char: "); scanf("%c", &ch );//输入一个字符
        getchar(); //过滤回车符
        printf("input name: "); gets(name); //输入一个带空格的字符串,回车确认,不需要清理回车符
        printf("char:%c name:%s\n", ch, name );
    }
}

第2个回答  推荐于2017-10-05

/*]

What's your name and gender?(one letter for name and one letter for gender)

gender(f for female and m for male)

Am

hello, Mr.A

when you were born(k:1996~2014,a:1960~1995,o:1900~1959)

Birthyear:a

my dear sir, <the dream>is the best for you

Press any key to continue

*/

#include <stdio.h>

int main() {
char name,gender,birth;
// insert code here...
printf("What's your name and gender?(one letter for name and one letter for gender)\n");
    printf("gender(f for female and m for male)\n");
scanf("%c%c",&name,&gender);
if(gender == 'f') printf("hello,Miss.%c\n",name);
else if(gender == 'm') printf("hello, Mr.%c\n",name);
else printf("hello,%c\n",name);
    puts("when you were born(k:1996~2014,a:1960~1995,o:1900~1959)");
    if(gender == 'm') {
fflush(stdin);
printf("Birthyear:");
scanf("%c",&birth);
switch(birth) {
case 'k':printf("my dear boy, <the adventure>is the best for you \n");break;
case 'a':printf("my dear sir, <the dream>is the best for you \n");break;
case 'o':printf("my respected sir , <the buddist>is the best for you \n");break;
default: printf("enter data error!\n");
}
}
return 0;
}

追问

额,在我的界面里还是必须所有信息一同输入,包括名字,性别,年龄

本回答被提问者和网友采纳
第3个回答  2014-04-07
想输入完整的人名要用字符数组哇。用gets()吧
char name[20];
gets(name);
printf("name = %s\n",name);

c语言输入字符串用逗号分开
1 如果使用scanf进行格式化输入,用逗号隔开不适用于先输入字符串后输入数字的情况,仅适用于数字的间隔,或者先输入数字后输入字符串。下面是先输入数字后输入字符串的例子:include <stdio.h>int main(){char s[100];int v;scanf("%d,%s",&v, s);\/\/先输入整型变量v,再输入字符串,可以使用逗...

字符型变量怎么输入字符型变量
3、其中字符型最是最通用的一种,他是八位二进制的。4、即一个字节,可以存任何一个字节的变量。5、如: int a = 0xFF;char *p = &a;A在内存中的样式:低地址高位。6、则 *p==0xff;*(p+1)==0;这个你明白了吧。7、字符型可以存任何数据。8、英文字符实际上是0-127的数字编码存在内...

C语言中char类型的数据输入和输出时怎么控制啊?
1、首先打开Microsoft Visual C++软件,单击“文件”菜单->“新建”,新建一个文件,文件名后缀为.c。2、新建好文件后,输入如下内容。3、然后我们在{ }之间输入函数的内容,我们先定义变量c1,变量的类型为char,字符型。4、用printf语句进行输出。5、当内容输入好后,我们点击图中工具按钮,对程序...

用C语言定义字符变量c,输入c的值,并输出它的字符形式和ASCII码?_百度知...
1. 首先,我们需要包含标准输入输出库 `stdio.h`。2. 接着,定义 `main` 函数作为程序的入口点。3. 在 `main` 函数中,声明一个字符变量 `c`。4. 使用 `printf` 函数提示用户输入一个字符。5. 使用 `scanf` 函数读取用户输入的字符,并将其存储在变量 `c` 中。6. 再次使用 `printf` 函...

c语言代码,输入三个字符型数据,将其转换成相应的整数后,求它们的平均值...
在C语言中,字符型数据可以像整型变量一样进行处理。例如,可以编写一个程序,读取三个字符型数据,将它们转换为整数,并计算这些整数的平均值。具体步骤如下:首先,我们需要包含必要的头文件,这里需要`stdio.h`。然后声明三个字符型变量,用于存储用户输入的字符。接下来,通过`scanf`函数读取用户输入的...

c语言scanf的用法
scanf是C语言标准库中的一个函数,用于从标准输入流读取输入,并根据提供的格式字符串将输入转换为相应的数据类型。以下是scanf函数的基本用法:1、输入整数:输入一个整数,并将其存储在变量num中,格式为:intnum;换行继续输入scanf("%d",&num)。2、输入浮点数:允许用户输入一个浮点数,并将其存储...

用C语言定义字符变量c,输入c的值,并输出它的字符形式和ASCII码?_百度知...
} 在上面的程序中,我们首先定义了一个字符变量 c,然后使用 scanf 函数从标准输入中读取一个字符,并将其存储在 c 变量中。接着,我们使用 printf 函数分别输出 c 变量的值、字符形式和ASCII码。需要注意的是,在 C 语言中,字符变量的类型是 char,它表示一个单个字符。在输出字符变量的值和字符...

C语言,如何给3个char变量赋值?不能直接char a='D',这种。要求用printf...
char a,b,c; \/*首先定义三个字符型变量*\/ scanf("%c,%,c%,c",&a,&b,&c); \/*使用输入函数scanf(),%c即为字符型*\/ \/*程序结束*\/ 注意:1、函数printf()用於输出,而函数scanf()则用於输入;2、使用输入函数scanf()时,要注意输入数据的类型:整形(int)对应用%d;浮点型(fl...

...从键盘上输入两个字符给字符变量a,b,并输出变量a,b的值。
{ char a,b; \/\/定义字符a,b scanf("%c %c",&a,&b); \/\/输入字符a,b printf("%c %c\\n",a,b);\/\/打印字符a,b return 0; \/\/返回并且输出a,b } 扩展知识:Matlab变量的特点:不需事先声明,也不需指定变量类型,Matlab自动根据所赋予变量的值或对变量所进行的操作来确定变量...

c语言中,定义什么类型的变量能同时储存数字跟字符,怎么输入
结构体变量,如下:struct data { char ch;int num;float a;char s[12];}b[200];然后你通过b[i].num b[i].a b[i].s等来调用就行了

相似回答