导图社区 C语言题11——15
这是一篇关于C语言题11——15的思维导图,主要内容包括:15、 C 语言实例 - 判断元音 辅音,14、 C 语言实例 - 循环区间范围内的奇数 偶数,13、 C 语言实例 - 判断奇数 偶数,12、 C 语言实例 - 交换两个数的值,11、 C 语言实例 - 计算 int float double 和 char 字节大小。
编辑于2025-02-13 20:34:4811——15
11、 C 语言实例 - 计算 int+float+double 和 char 字节大小
1. 直接使用 sizeof 操作符: 这是最直接和常用的方法。
#include <stdio.h>
int main() {
printf("Size of int: %zu bytes\n", sizeof(int));
//%zu 是用于打印 size_t 类型变量的格式说明符。
printf("Size of float: %zu bytes\n", sizeof(float));
printf("Size of double: %zu bytes\n", sizeof(double));
printf("Size of char: %zu bytes\n", sizeof(char));
return 0;
}
2. 使用 sizeof 操作符计算变量的字节大小: 这种方法与直接计算数据类型相同,但操作的是变量。
#include <stdio.h>
int main() {
int intVar;
float floatVar;
double doubleVar;
char charVar;
printf("Size of intVar: %zu bytes\n", sizeof(intVar));
printf("Size of floatVar: %zu bytes\n", sizeof(floatVar));
printf("Size of doubleVar: %zu bytes\n", sizeof(doubleVar));
printf("Size of charVar: %zu bytes\n", sizeof(charVar));
return 0;
}
3. 使用 sizeof 操作符计算数组的字节大小: 可以用来计算数组类型的大小。
#include <stdio.h>
int main() {
int intArray[5];
float floatArray[5];
double doubleArray[5];
char charArray[5];
printf("Size of intArray: %zu bytes\n", sizeof(intArray));
printf("Size of floatArray: %zu bytes\n", sizeof(floatArray));
printf("Size of doubleArray: %zu bytes\n", sizeof(doubleArray));
printf("Size of charArray: %zu bytes\n", sizeof(charArray));
// 计算数组中单个元素的大小
printf("Size of one int in intArray: %zu bytes\n", sizeof(intArray) / sizeof(intArray[0]));
printf("Size of one float in floatArray: %zu bytes\n", sizeof(floatArray) / sizeof(floatArray[0]));
printf("Size of one double in doubleArray: %zu bytes\n", sizeof(doubleArray) / sizeof(doubleArray[0]));
printf("Size of one char in charArray: %zu bytes\n", sizeof(charArray) / sizeof(charArray[0]));
return 0;
}
4. 使用 sizeof 操作符计算结构体的字节大小: 可以用来计算结构体类型的大小。
#include <stdio.h>
struct Example {
int anInt;
float aFloat;
double aDouble;
char aChar;
};
int main() {
printf("Size of struct Example: %zu bytes\n", sizeof(struct Example));
return 0;
}
12、 C 语言实例 - 交换两个数的值
1. 方法一:使用临时变量 这是最常见和最简单的方法,使用一个额外的临时变量来存储其中一个数的值,以便在交换时使用。
#include <stdio.h>
int main() {
int a, b, temp;
printf("请输入第一个整数: ");
scanf("%d", &a);
printf("请输入第二个整数: ");
scanf("%d", &b);
printf("交换前: a = %d, b = %d\n", a, b);
temp = a;
a = b;
b = temp;
printf("交换后: a = %d, b = %d\n", a, b);
return 0;
}
2. 方法二:不使用临时变量(使用加减法) 这种方法利用加减法来交换两个数的值,不需要额外的临时变量。
#include <stdio.h>
int main() {
int a, b;
printf("请输入第一个整数: ");
scanf("%d", &a);
printf("请输入第二个整数: ");
scanf("%d", &b);
printf("交换前: a = %d, b = %d\n", a, b);
a = a + b;
b = a - b;
a = a - b;
printf("交换后: a = %d, b = %d\n", a, b);
return 0;
}
3. 方法三:不使用临时变量(使用乘除法) 这种方法利用乘除法来交换两个数的值。需要注意的是,这种方法可能会导致溢出问题,特别是在处理大整数时。
#include <stdio.h>
int main() {
int a, b;
printf("请输入第一个整数: ");
scanf("%d", &a);
printf("请输入第二个整数: ");
scanf("%d", &b);
printf("交换前: a = %d, b = %d\n", a, b);
a = a * b;
b = a / b;
a = a / b;
printf("交换后: a = %d, b = %d\n", a, b);
return 0;
}
4. 方法四:不使用临时变量(使用异或运算) 这种方法利用位运算中的异或运算来交换两个数的值,不需要额外的临时变量。这种方法的优点是不需要额外的存储空间,并且在某些情况下可能会提高性能。
#include <stdio.h>
int main() {
int a, b;
printf("请输入第一个整数: ");
scanf("%d", &a);
printf("请输入第二个整数: ");
scanf("%d", &b);
printf("交换前: a = %d, b = %d\n", a, b);
a = a ^ b;
b = a ^ b;
a = a ^ b;
printf("交换后: a = %d, b = %d\n", a, b);
return 0;
}
5. 方法五:使用指针 这种方法利用指针来交换两个数的值。通过传递变量的地址,函数可以直接修改变量的值。
#include <stdio.h>
void swap(int* x, int* y) {
int temp = *x;
*x = *y;
*y = temp;
}
int main() {
int a, b;
printf("请输入第一个整数: ");
scanf("%d", &a);
printf("请输入第二个整数: ");
scanf("%d", &b);
printf("交换前: a = %d, b = %d\n", a, b);
swap(&a, &b);
printf("交换后: a = %d, b = %d\n", a, b);
return 0;
}
6. 方法六:使用数组 这种方法利用数组来交换两个数的值。将两个数存储在数组中,然后通过数组索引来交换它们的值。
#include <stdio.h>
int main() {
int arr[2];
printf("请输入第一个整数: ");
scanf("%d", &arr[0]);
printf("请输入第二个整数: ");
scanf("%d", &arr[1]);
printf("交换前: a = %d, b = %d\n", arr[0], arr[1]);
arr[0] = arr[0] ^ arr[1];
arr[1] = arr[0] ^ arr[1];
arr[0] = arr[0] ^ arr[1];
printf("交换后: a = %d, b = %d\n", arr[0], arr[1]);
return 0;
}
7. 方法七:使用结构体 这种方法利用结构体来交换两个数的值。将两个数存储在结构体中,然后通过结构体变量来进行交换。
#include <stdio.h>
void swap(struct { int x; int y; } *p) {
p->x = p->x ^ p->y;
p->y = p->x ^ p->y;
p->x = p->x ^ p->y;
}
int main() {
struct { int x; int y; } num;
printf("请输入第一个整数: ");
scanf("%d", &num.x);
printf("请输入第二个整数: ");
scanf("%d", &num.y);
printf("交换前: a = %d, b = %d\n", num.x, num.y);
swap(&num);
printf("交换后: a = %d, b = %d\n", num.x, num.y);
return 0;
}
13、 C 语言实例 - 判断奇数 偶数
1. 方法一:使用 if - else 语句
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int number;
// 提示用户输入一个整数
printf("请输入一个整数: ");
scanf("%d", &number);
// 判断该整数是奇数还是偶数
if (number % 2 == 0) {
printf("%d 是偶数。\n", number);
}
else {
printf("%d 是奇数。\n", number);
}
return 0;
}
2. 方法二:使用三目运算符
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int number;
// 提示用户输入一个整数
printf("请输入一个整数: ");
scanf("%d", &number);
// 使用三目运算符判断奇数或偶数
(number % 2 == 0) ? printf("%d 是偶数。\n", number) : printf("%d 是奇数。\n", number);
return 0;
}
3. 方法三:使用函数封装
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
// 函数声明
void checkEvenOdd(int number);
int main() {
int number;
// 提示用户输入一个整数
printf("请输入一个整数: ");
scanf("%d", &number);
// 调用函数判断奇数或偶数
checkEvenOdd(number);
return 0;
}
// 函数定义
void checkEvenOdd(int number) {
if (number % 2 == 0) {
printf("%d 是偶数。\n", number);
}
else {
printf("%d 是奇数。\n", number);
}
}
#include<stdio.h>
void a(int b) {
(b % 2 == 0)? (printf("%d是偶数\n", b)) : (printf("%d是奇数\n", b));
}
int main() {
int b;
printf("请输入一个数:\n");
scanf("%d", &b);
a(b);
return 0;
}
循环
使用 for 循环
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
// 函数声明
void checkEvenOdd(int number);
int main() {
int number;
// 使用 for 循环不断要求用户输入整数,直到输入 0 为止
for (;;) {
// 提示用户输入一个整数
printf("请输入一个整数 (输入 0 结束): ");
scanf("%d", &number);
// 如果用户输入 0,则结束循环
if (number == 0) {
break;
}
// 调用函数判断奇数或偶数
checkEvenOdd(number);
}
printf("程序结束。\n");
return 0;
}
// 函数定义
void checkEvenOdd(int number) {
if (number % 2 == 0) {
printf("%d 是偶数。\n", number);
}
else {
printf("%d 是奇数。\n", number);
}
}
使用 while 循环
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
// 函数声明
void checkEvenOdd(int number);
int main() {
int number;
// 使用 while 循环不断要求用户输入整数,直到输入 0 为止
while (1) {
// 提示用户输入一个整数
printf("请输入一个整数 (输入 0 结束): ");
scanf("%d", &number);
// 如果用户输入 0,则结束循环
if (number == 0) {
break;
}
// 调用函数判断奇数或偶数
checkEvenOdd(number);
}
printf("程序结束。\n");
return 0;
}
// 函数定义
void checkEvenOdd(int number) {
if (number % 2 == 0) {
printf("%d 是偶数。\n", number);
}
else {
printf("%d 是奇数。\n", number);
}
}
使用 do - while 循环
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
// 函数声明
void checkEvenOdd(int number);
int main() {
int number;
// 使用 do-while 循环不断要求用户输入整数,直到输入 0 为止
do {
// 提示用户输入一个整数
printf("请输入一个整数 (输入 0 结束): ");
scanf("%d", &number);
// 如果用户输入 0,则结束循环
if (number == 0) {
break;
}
// 调用函数判断奇数或偶数
checkEvenOdd(number);
} while (1);
printf("程序结束。\n");
return 0;
}
// 函数定义
void checkEvenOdd(int number) {
if (number % 2 == 0) {
printf("%d 是偶数。\n", number);
}
else {
printf("%d 是奇数。\n", number);
}
}
14、 C 语言实例 - 循环区间范围内的奇数 偶数
方法一:使用一个循环,分别判断奇数和偶数
#include <stdio.h>
int main() {
int start, end, i;
// 提示用户输入区间范围
printf("请输入区间的起始值: ");
scanf("%d", &start);
printf("请输入区间的结束值: ");
scanf("%d", &end);
printf("偶数: ");
printf("奇数: ");
for (i = start; i <= end; i++) {
if (i % 2 == 0) {
printf("%d ", i);
}
else {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
#include <stdio.h>
int main() {
int start, end, i, c = 0;
// 提示用户输入区间范围
printf("请输入区间的起始值: ");
scanf("%d", &start);
printf("请输入区间的结束值: ");
scanf("%d", &end);
printf("偶数: ");
printf("奇数: ");
printf("\n");
for (i = start; i <= end; i++, c++) {
if (c % 2 == 0) {
printf("\n");
}
if (i % 2 == 0) {
printf("偶数: ");
printf("%d ", i);
}
else {
printf("奇数: ");
printf("%d ", i);
}
}
printf("\n");
return 0;
}
方法二:使用两个循环,分别输出偶数和奇数
#include <stdio.h>
int main() {
int start, end, i;
// 提示用户输入区间范围
printf("请输入区间的起始值: ");
scanf("%d", &start);
printf("请输入区间的结束值: ");
scanf("%d", &end);
printf("偶数: ");
for (i = start; i <= end; i++) {
if (i % 2 == 0) {
printf("%d ", i);
}
}
printf("\n奇数: ");
for (i = start; i <= end; i++) {
if (i % 2 != 0) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
方法三:使用一个循环,分别存储偶数和奇数到数组中,最后输出
#include <stdio.h>
int main() {
int start, end, i;
int even[100], odd[100];
int even_count = 0, odd_count = 0;
// 提示用户输入区间范围
printf("请输入区间的起始值: ");
scanf("%d", &start);
printf("请输入区间的结束值: ");
scanf("%d", &end);
// 遍历区间范围内的所有整数
for (i = start; i <= end; i++) {
if (i % 2 == 0) {
even[even_count++] = i;
}
else {
odd[odd_count++] = i;
}
}
// 输出偶数
printf("偶数: ");
for (i = 0; i < even_count; i++) {
printf("%d ", even[i]);
}
printf("\n");
// 输出奇数
printf("奇数: ");
for (i = 0; i < odd_count; i++) {
printf("%d ", odd[i]);
}
printf("\n");
return 0;
}
我
#include<stdio.h>
int main() {
int start, end, i, a[100], b[100], a_c = 0, b_c = 0;
printf("请输入区间的起始值:");
scanf("%d", &start);
printf("请输入区间的结束值:");
scanf("%d", &end);
for (i = start; i <= end; i++) {
if (i % 2 == 0) {
a[a_c++] = i;
}
else {
b[b_c++] = i;
}
}
printf("偶数:");
for (i = 0; i < a_c; i++) {
printf("%d ", a[i]);
}
printf("\n");
printf("奇数:");
for (i = 0; i < b_c; i ++ ) {
printf("%d ", b[i]);
}
printf("\n");
return 0;
}
15、 C 语言实例 - 判断元音 辅音
方法一:使用条件语句 这是最直接的方法,通过条件语句判断字符是否为元音。
#include <stdio.h>
int main() {
char ch;
// 提示用户输入一个字符
printf("请输入一个字符:");
scanf("%c", &ch);
// 将字符转换为小写以便统一判断
if (ch >= 'A' && ch <= 'Z') {
ch = ch + 32;
}
// 判断字符是否为元音
if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') {
printf("输入的字符 '%c' 是元音。\n", ch);
}
// 如果不是元音,则判断是否为辅音
else if ((ch >= 'a' && ch <= 'z')) {
printf("输入的字符 '%c' 是辅音。\n", ch);
}
// 如果既不是元音也不是辅音(例如数字或特殊字符),则输出错误信息
else {
printf("输入的字符 '%c' 既不是元音也不是辅音。\n", ch);
}
return 0;
}
方法二:使用数组和循环 这种方法将元音存储在数组中,通过循环判断字符是否在数组中。
#include <stdio.h>
int main() {
char ch;
char vowels[] = { 'a', 'e', 'i', 'o', 'u' };
int isVowel = 0;
// 提示用户输入一个字符
printf("请输入一个字符:");
scanf("%c", &ch);
// 将字符转换为小写以便统一判断
if (ch >= 'A' && ch <= 'Z') {
ch = ch + 32;
}
// 判断字符是否为元音
for (int i = 0; i < 5; i++) {
if (ch == vowels[i]) {
isVowel = 1;
//随意,数字
break;
}
}
if (isVowel) {
printf("输入的字符 '%c' 是元音。\n", ch);
}
// 如果不是元音,则判断是否为辅音
else if ((ch >= 'a' && ch <= 'z')) {
printf("输入的字符 '%c' 是辅音。\n", ch);
}
// 如果既不是元音也不是辅音(例如数字或特殊字符),则输出错误信息
else {
printf("输入的字符 '%c' 既不是元音也不是辅音。\n", ch);
}
return 0;
}
我改出去
#include <stdio.h>
void name(char ch) {
char vowels[] = { 'a', 'e', 'i', 'o', 'u' };
int isVowel = 0;
// 将字符转换为小写以便统一判断
if (ch >= 'A' && ch <= 'Z') {
ch = ch + 32;
}
// 判断字符是否为元音
for (int i = 0; i < 5; i++) {
if (ch == vowels[i]) {
isVowel = 1;
break;
}
}
if (isVowel) {
printf("输入的字符 '%c' 是元音。\n", ch);
}
// 如果不是元音,则判断是否为辅音
else if ((ch >= 'a' && ch <= 'z')) {
printf("输入的字符 '%c' 是辅音。\n", ch);
}
// 如果既不是元音也不是辅音(例如数字或特殊字符),则输出错误信息
else {
printf("输入的字符 '%c' 既不是元音也不是辅音。\n", ch);
}
}
int main() {
char ch;
// 提示用户输入一个字符
printf("请输入一个字符:");
scanf("%c", &ch);
// 调用name函数来判断输入的字符
name(ch);
return 0;
}
循环
#include <stdio.h>
void name(char ch) {
char vowels[] = { 'a', 'e', 'i', 'o', 'u' };
int isVowel = 0;
// 将字符转换为小写以便统一判断
if (ch >= 'A' && ch <= 'Z') {
ch = ch + 32;
}
// 判断字符是否为元音
for (int i = 0; i < 5; i++) {
if (ch == vowels[i]) {
isVowel = 1;
break;
}
}
if (isVowel) {
printf("输入的字符 '%c' 是元音。\n", ch);
}
// 如果不是元音,则判断是否为辅音
else if ((ch >= 'a' && ch <= 'z')) {
printf("输入的字符 '%c' 是辅音。\n", ch);
}
// 如果既不是元音也不是辅音(例如数字或特殊字符),则输出错误信息
else {
printf("输入的字符 '%c' 既不是元音也不是辅音。\n", ch);
}
}
int main() {
char ch;
while (1) {
// 提示用户输入一个字符
printf("请输入一个字符(输入'0'结束):");
scanf(" %c", &ch); // 注意这里的空格,用于忽略前一个输入留下的换行符
// 检查是否输入结束字符(例如'0')
if (ch == '0') {
break;
}
// 调用name函数,传入用户输入的字符作为参数
name(ch);
}
return 0;
}
方法三:使用字符串查找 这种方法将元音存储在一个字符串中,使用strchr函数查找字符是否在字符串中。
#include <stdio.h>
#include <string.h>
int main() {
char ch;
char vowels[] = "aeiou";
char* result;
// 提示用户输入一个字符
printf("请输入一个字符:");
scanf("%c", &ch);
// 将字符转换为小写以便统一判断
if (ch >= 'A' && ch <= 'Z') {
ch = ch + 32;
}
// 判断字符是否为元音
result = strchr(vowels, ch);
if (result != NULL) {
printf("输入的字符 '%c' 是元音。\n", ch);
}
// 如果不是元音,则判断是否为辅音
else if ((ch >= 'a' && ch <= 'z')) {
printf("输入的字符 '%c' 是辅音。\n", ch);
}
// 如果既不是元音也不是辅音(例如数字或特殊字符),则输出错误信息
else {
printf("输入的字符 '%c' 既不是元音也不是辅音。\n", ch);
}
return 0;
}
循环
方法一:使用 while (1) 循环和条件语句 这是最直接的方法,通过无限循环和条件语句来控制退出。
#include <stdio.h>
int main() {
char ch;
while (1) {
// 提示用户输入一个字符
printf("请输入一个字符(输入 'q' 退出):");
scanf(" %c", &ch); // 注意这里的空格,用于清除缓冲区中的换行符
// 检查是否退出循环
if (ch == 'q') {
printf("退出程序。\n");
break;
}
// 将字符转换为小写以便统一判断
if (ch >= 'A' && ch <= 'Z') {
ch = ch + 32;
}
// 判断字符是否为元音
if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') {
printf("输入的字符 '%c' 是元音。\n", ch);
}
// 如果不是元音,则判断是否为辅音
else if ((ch >= 'a' && ch <= 'z')) {
printf("输入的字符 '%c' 是辅音。\n", ch);
}
// 如果既不是元音也不是辅音(例如数字或特殊字符),则输出错误信息
else {
printf("输入的字符 '%c' 既不是元音也不是辅音。\n", ch);
}
}
return 0;
}
我的改进
1. 放出去
#include <stdio.h>
void name(char ch) {
char vowels[] = { 'a', 'e', 'i', 'o', 'u' };
int isVowel = 0;
// 提示用户输入一个字符
/*printf("请输入一个字符:");
scanf("%c", &ch);*/
// 将字符转换为小写以便统一判断
if (ch >= 'A' && ch <= 'Z') {
ch = ch + 32;
}
// 判断字符是否为元音
for (int i = 0; i < 5; i++) {
if (ch == vowels[i]) {
isVowel = 1;
break;
}
}
if (isVowel) {
printf("输入的字符 '%c' 是元音。\n", ch);
}
// 如果不是元音,则判断是否为辅音
else if ((ch >= 'a' && ch <= 'z')) {
printf("输入的字符 '%c' 是辅音。\n", ch);
}
// 如果既不是元音也不是辅音(例如数字或特殊字符),则输出错误信息
else {
printf("输入的字符 '%c' 既不是元音也不是辅音。\n", ch);
}
}
int main() {
char ch;
printf("请输入一个字符:");
scanf("%c", &ch);
name(ch);
return 0;
}
2、 循环
#include <stdio.h>
void name(char ch) {
char vowels[] = { 'a', 'e', 'i', 'o', 'u' };
int isVowel = 0;
// 将字符转换为小写以便统一判断
if (ch >= 'A' && ch <= 'Z') {
ch = ch + 32;
}
// 判断字符是否为元音
for (int i = 0; i < 5; i++) {
if (ch == vowels[i]) {
isVowel = 1;
break;
}
}
if (isVowel) {
printf("输入的字符 '%c' 是元音。\n", ch);
}
// 如果不是元音,则判断是否为辅音
else if ((ch >= 'a' && ch <= 'z')) {
printf("输入的字符 '%c' 是辅音。\n", ch);
}
// 如果既不是元音也不是辅音(例如数字或特殊字符),则输出错误信息
else {
printf("输入的字符 '%c' 既不是元音也不是辅音。\n", ch);
}
}
int main() {
char ch;
while (1) {
// 提示用户输入一个字符
printf("请输入一个字符:");
scanf(" %c", &ch); // 注意这里的空格,用于忽略前一个输入留下的换行符
// 检查是否输入结束字符(例如'0')
if (ch == '0') {
break;
}
// 调用name函数,传入用户输入的字符作为参数
name(ch);
}
return 0;
}
方法二:使用 do - while 循环 do - while 循环至少会执行一次,然后根据条件决定是否继续执行。
#include <stdio.h>
#include <string.h>
int main() {
char ch;
char vowels[] = "aeiou";
char* result;
do {
// 提示用户输入一个字符
printf("请输入一个字符(输入 'q' 退出):");
scanf(" %c", &ch); // 注意这里的空格,用于清除缓冲区中的换行符
// 将字符转换为小写以便统一判断
if (ch >= 'A' && ch <= 'Z') {
ch = ch + 32;
}
// 判断字符是否为元音
result = strchr(vowels, ch);
if (result != NULL) {
printf("输入的字符 '%c' 是元音。\n", ch);
}
// 如果不是元音,则判断是否为辅音
else if ((ch >= 'a' && ch <= 'z')) {
printf("输入的字符 '%c' 是辅音。\n", ch);
}
// 如果既不是元音也不是辅音(例如数字或特殊字符),则输出错误信息
else {
printf("输入的字符 '%c' 既不是元音也不是辅音。\n", ch);
}
} while (ch != 'q');
printf("退出程序。\n");
return 0;
}
方法三:使用 for 循环 虽然for循环通常用于已知次数的循环,但也可以用for(;;)来实现无限循环。
#include <stdio.h>
#include <string.h>
int main() {
char ch;
char vowels[] = "aeiou";
char* result;
for (;;) {
// 提示用户输入一个字符
printf("请输入一个字符(输入 'q' 退出):");
scanf(" %c", &ch); // 注意这里的空格,用于清除缓冲区中的换行符
// 检查是否退出循环
if (ch == 'q') {
printf("退出程序。\n");
break;
}
// 将字符转换为小写以便统一判断
if (ch >= 'A' && ch <= 'Z') {
ch = ch + 32;
}
// 判断字符是否为元音
result = strchr(vowels, ch);
if (result != NULL) {
printf("输入的字符 '%c' 是元音。\n", ch);
}
// 如果不是元音,则判断是否为辅音
else if ((ch >= 'a' && ch <= 'z')) {
printf("输入的字符 '%c' 是辅音。\n", ch);
}
// 如果既不是元音也不是辅音(例如数字或特殊字符),则输出错误信息
else {
printf("输入的字符 '%c' 既不是元音也不是辅音。\n", ch);
}
}
return 0;
}
方法四:使用标志变量 使用一个标志变量来控制循环的继续或退出。
#include <stdio.h>
#include <string.h>
int main() {
char ch;
char vowels[] = "aeiou";
char* result;
int continueLoop = 1;
while (continueLoop) {
// 提示用户输入一个字符
printf("请输入一个字符(输入 'q' 退出):");
scanf(" %c", &ch); // 注意这里的空格,用于清除缓冲区中的换行符
// 检查是否退出循环
if (ch == 'q') {
printf("退出程序。\n");
continueLoop = 0;
}
// 将字符转换为小写以便统一判断
if (ch >= 'A' && ch <= 'Z') {
ch = ch + 32;
}
// 判断字符是否为元音
result = strchr(vowels, ch);
if (result != NULL) {
printf("输入的字符 '%c' 是元音。\n", ch);
}
// 如果不是元音,则判断是否为辅音
else if ((ch >= 'a' && ch <= 'z')) {
printf("输入的字符 '%c' 是辅音。\n", ch);
}
// 如果既不是元音也不是辅音(例如数字或特殊字符),则输出错误信息
else {
printf("输入的字符 '%c' 既不是元音也不是辅音。\n", ch);
}
}
return 0;
}