用printf输出一个简单小猫图案,且小猫的眼睛可根据输入的字符改变形状
时间: 2024-10-13 09:17:32 浏览: 33
在C语言中,你可以使用`printf`函数创建一个简单的猫头图案,其中眼睛部分可以根据用户输入的不同字符呈现不同的形状。下面是一个基本的例子,我们这里假设用户可以输入 'o' 或 '*' 来选择眼睛的形状。
```c
#include <stdio.h>
void print_cat(char eye) {
printf(" /\_/\n( o.o )\n > ^ < \n %c %c ", eye, eye);
}
int main() {
char eyes[2];
printf("请输入眼睛形状(o或*):");
scanf("%s", eyes);
if (eyes[0] == 'o' || eyes[0] == '*') {
print_cat(eyes[0]);
} else {
printf("无效输入,只接受'o'或'*'\n");
}
return 0;
}
```
在这个程序中,用户输入的是第一个字符(眼睛通常有两个),然后我们检查这个字符是否是 'o' 或 '*'。如果是,我们就用这个字符打印眼睛;如果不是,我们会显示一个错误消息。
相关问题
编写一个C语言,使用prinft函数输出一只小猫,要求能够根据用户输入的字符来改变小猫的眼睛和嘴巴的形状
要创建一个简单的C程序,让用户输入字符并决定小猫眼睛和嘴巴的形状,我们可以定义几个常量代表眼睛和嘴巴的不同状态,然后根据用户的输入进行改变。以下是一个基本的示例:
```c
#include <stdio.h>
// 定义眼睛和嘴巴的状态
enum BodyPart {
CLOSED_EYES = ' ', // 小猫闭着眼睛
OPEN_EYES = '*', // 小猫睁大眼睛
CLOSED_MOUTH = '|', // 小猫闭着嘴
SMILING_MOUTH = ':)' // 小猫微笑
};
int main() {
char user_input;
printf("请输入一个字符(a: 改变眼睛, b: 改变嘴巴): ");
scanf("%c", &user_input);
switch (user_input) {
case 'a':
printf("小猫眼睛形态: ");
printf(OPEN_EYES == CLOSED_EYES ? OPEN_EYES : CLOSED_EYES);
break;
case 'b':
printf("小猫嘴巴形态: ");
printf(SMILING_MOUTH == CLOSED_MOUTH ? SMILING_MOUTH : CLOSED_MOUTH);
break;
default:
printf("无效输入! 请输入 a 或者 b。\n");
}
return 0;
}
```
在这个程序中,我们使用`enum`类型定义了眼睛和嘴巴的两种可能状态。用户可以通过输入'a'改变眼睛的状态,输入'b'改变嘴巴的状态。
运行这个程序时,按照提示输入字符即可看到对应的变化。
C语言用scanf函数%d格式输入一个字符,用printf函数输出结果
在C语言中,`scanf` 函数通常用于读取用户输入的数据,并按照指定的格式转换成相应的数据类型。当你使用 `%d` 格式说明符尝试从输入中获取一个整数时,实际上它是无法直接处理字符输入的,因为 `%d` 是为了匹配整数值。
如果你想要输入一个字符并将其存储为整数,你需要先将它视为字符(ASCII码),然后再转换。这里是一个简单的示例:
```c
#include <stdio.h>
int main() {
char ch;
printf("请输入一个字符: ");
// 使用 %c 作为格式说明符,适用于单个字符
if (scanf("%c", &ch) == 1) { // 检查是否成功读入一个字符
printf("你输入的字符是: %c\n", ch); // 输出字符本身
printf("其 ASCII 码值是: %d\n", ch); // 将字符转换为整型并输出ASCII码
} else {
printf("输入错误!\n");
}
return 0;
}
```
在这个例子中,`%c` 会等待用户输入一个字符,并将其保存到 `ch` 变量中。然后我们再通过 `printf` 输出字符和它的ASCII码值。
注意,尽管这个例子展示了如何读取和打印字符,但是标准上来说,ASCII码值对应的是字符的编码,而非字符本身,所以输出的 "其 ASCII 码值是" 部分可能并不直观,比如空格的ASCII码是32,但在输出时显示的还是空格字符。
阅读全文