心智圖資源庫 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 ", sizeof(int));
//%zu 是用於打印 size_t 類型變量的格式說明符。
printf("Size of float: %zu bytes ", sizeof(float));
printf("Size of double: %zu bytes ", sizeof(double));
printf("Size of char: %zu bytes ", 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 ", sizeof(intVar));
printf("Size of floatVar: %zu bytes ", sizeof(floatVar));
printf("Size of doubleVar: %zu bytes ", sizeof(doubleVar));
printf("Size of charVar: %zu bytes ", 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 ", sizeof(intArray));
printf("Size of floatArray: %zu bytes ", sizeof(floatArray));
printf("Size of doubleArray: %zu bytes ", sizeof(doubleArray));
printf("Size of charArray: %zu bytes ", sizeof(charArray));
// 計算數組中單個元素的大小
printf("Size of one int in intArray: %zu bytes ", sizeof(intArray) / sizeof(intArray[0]));
printf("Size of one float in floatArray: %zu bytes ", sizeof(floatArray) / sizeof(floatArray[0]));
printf("Size of one double in doubleArray: %zu bytes ", sizeof(doubleArray) / sizeof(doubleArray[0]));
printf("Size of one char in charArray: %zu bytes ", 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 ", 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 ", a, b);
temp = a;
a = b;
b = temp;
printf("交換後: a = %d, b = %d ", 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 ", a, b);
a = a b;
b = a - b;
a = a - b;
printf("交換後: a = %d, b = %d ", 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 ", a, b);
a = a * b;
b = a / b;
a = a / b;
printf("交換後: a = %d, b = %d ", 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 ", a, b);
a = a ^ b;
b = a ^ b;
a = a ^ b;
printf("交換後: a = %d, b = %d ", 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 ", a, b);
swap(&a, &b);
printf("交換後: a = %d, b = %d ", 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 ", 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 ", 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 ", num.x, num.y);
swap(&num);
printf("交換後: a = %d, b = %d ", 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 是偶數。 ", number);
}
else {
printf("%d 是奇數。 ", 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 是偶數。 ", number) : printf("%d 是奇數。 ", 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 是偶數。 ", number);
}
else {
printf("%d 是奇數。 ", number);
}
}
#include<stdio.h>
void a(int b) {
(b % 2 == 0)? (printf("%d是偶數 ", b)) : (printf("%d是奇數 ", b));
}
int main() {
int b;
printf("請輸入一個數: ");
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("程序結束。 ");
return 0;
}
// 函數定義
void checkEvenOdd(int number) {
if (number % 2 == 0) {
printf("%d 是偶數。 ", number);
}
else {
printf("%d 是奇數。 ", 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("程序結束。 ");
return 0;
}
// 函數定義
void checkEvenOdd(int number) {
if (number % 2 == 0) {
printf("%d 是偶數。 ", number);
}
else {
printf("%d 是奇數。 ", 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("程序結束。 ");
return 0;
}
// 函數定義
void checkEvenOdd(int number) {
if (number % 2 == 0) {
printf("%d 是偶數。 ", number);
}
else {
printf("%d 是奇數。 ", 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(" ");
return 0;
}
#include <stdio.h>
int main() {
int start, end, i, c = 0;
// 提示用戶輸入區間範圍
printf("請輸入區間的起始值: ");
scanf("%d", &start);
printf("請輸入區間的結束值: ");
scanf("%d", &end);
printf("偶數: ");
printf("奇數: ");
printf(" ");
for (i = start; i <= end; i , c ) {
if (c % 2 == 0) {
printf(" ");
}
if (i % 2 == 0) {
printf("偶數: ");
printf("%d ", i);
}
else {
printf("奇數: ");
printf("%d ", i);
}
}
printf(" ");
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(" 奇數: ");
for (i = start; i <= end; i ) {
if (i % 2 != 0) {
printf("%d ", i);
}
}
printf(" ");
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(" ");
// 輸出奇數
printf("奇數: ");
for (i = 0; i < odd_count; i ) {
printf("%d ", odd[i]);
}
printf(" ");
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(" ");
printf("奇數:");
for (i = 0; i < b_c; i ) {
printf("%d ", b[i]);
}
printf(" ");
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' 是元音。 ", ch);
}
// 如果不是元音,則判斷是否為輔音
else if ((ch >= 'a' && ch <= 'z')) {
printf("輸入的字符 '%c' 是輔音。 ", ch);
}
// 如果既不是元音也不是輔音(例如數字或特殊字符),則輸出錯誤信息
else {
printf("輸入的字符 '%c' 既不是元音也不是輔音。 ", 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' 是元音。 ", ch);
}
// 如果不是元音,則判斷是否為輔音
else if ((ch >= 'a' && ch <= 'z')) {
printf("輸入的字符 '%c' 是輔音。 ", ch);
}
// 如果既不是元音也不是輔音(例如數字或特殊字符),則輸出錯誤信息
else {
printf("輸入的字符 '%c' 既不是元音也不是輔音。 ", 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' 是元音。 ", ch);
}
// 如果不是元音,則判斷是否為輔音
else if ((ch >= 'a' && ch <= 'z')) {
printf("輸入的字符 '%c' 是輔音。 ", ch);
}
// 如果既不是元音也不是輔音(例如數字或特殊字符),則輸出錯誤信息
else {
printf("輸入的字符 '%c' 既不是元音也不是輔音。 ", 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' 是元音。 ", ch);
}
// 如果不是元音,則判斷是否為輔音
else if ((ch >= 'a' && ch <= 'z')) {
printf("輸入的字符 '%c' 是輔音。 ", ch);
}
// 如果既不是元音也不是輔音(例如數字或特殊字符),則輸出錯誤信息
else {
printf("輸入的字符 '%c' 既不是元音也不是輔音。 ", 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' 是元音。 ", ch);
}
// 如果不是元音,則判斷是否為輔音
else if ((ch >= 'a' && ch <= 'z')) {
printf("輸入的字符 '%c' 是輔音。 ", ch);
}
// 如果既不是元音也不是輔音(例如數字或特殊字符),則輸出錯誤信息
else {
printf("輸入的字符 '%c' 既不是元音也不是輔音。 ", ch);
}
return 0;
}
循環
方法一:使用 while (1) 循環和條件語句 這是最直接的方法,通過無限循環和條件語句來控制退出。
#include <stdio.h>
int main() {
char ch;
while (1) {
// 提示用戶輸入一個字符
printf("請輸入一個字符(輸入 'q' 退出):");
scanf(" %c", &ch); // 注意這裡的空格,用於清除緩衝區中的換行符
// 檢查是否退出循環
if (ch == 'q') {
printf("退出程序。 ");
break;
}
// 將字符轉換為小寫以便統一判斷
if (ch >= 'A' && ch <= 'Z') {
ch = ch 32;
}
// 判斷字符是否為元音
if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') {
printf("輸入的字符 '%c' 是元音。 ", ch);
}
// 如果不是元音,則判斷是否為輔音
else if ((ch >= 'a' && ch <= 'z')) {
printf("輸入的字符 '%c' 是輔音。 ", ch);
}
// 如果既不是元音也不是輔音(例如數字或特殊字符),則輸出錯誤信息
else {
printf("輸入的字符 '%c' 既不是元音也不是輔音。 ", 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' 是元音。 ", ch);
}
// 如果不是元音,則判斷是否為輔音
else if ((ch >= 'a' && ch <= 'z')) {
printf("輸入的字符 '%c' 是輔音。 ", ch);
}
// 如果既不是元音也不是輔音(例如數字或特殊字符),則輸出錯誤信息
else {
printf("輸入的字符 '%c' 既不是元音也不是輔音。 ", 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' 是元音。 ", ch);
}
// 如果不是元音,則判斷是否為輔音
else if ((ch >= 'a' && ch <= 'z')) {
printf("輸入的字符 '%c' 是輔音。 ", ch);
}
// 如果既不是元音也不是輔音(例如數字或特殊字符),則輸出錯誤信息
else {
printf("輸入的字符 '%c' 既不是元音也不是輔音。 ", 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' 是元音。 ", ch);
}
// 如果不是元音,則判斷是否為輔音
else if ((ch >= 'a' && ch <= 'z')) {
printf("輸入的字符 '%c' 是輔音。 ", ch);
}
// 如果既不是元音也不是輔音(例如數字或特殊字符),則輸出錯誤信息
else {
printf("輸入的字符 '%c' 既不是元音也不是輔音。 ", ch);
}
} while (ch != 'q');
printf("退出程序。 ");
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("退出程序。 ");
break;
}
// 將字符轉換為小寫以便統一判斷
if (ch >= 'A' && ch <= 'Z') {
ch = ch 32;
}
// 判斷字符是否為元音
result = strchr(vowels, ch);
if (result != NULL) {
printf("輸入的字符 '%c' 是元音。 ", ch);
}
// 如果不是元音,則判斷是否為輔音
else if ((ch >= 'a' && ch <= 'z')) {
printf("輸入的字符 '%c' 是輔音。 ", ch);
}
// 如果既不是元音也不是輔音(例如數字或特殊字符),則輸出錯誤信息
else {
printf("輸入的字符 '%c' 既不是元音也不是輔音。 ", 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("退出程序。 ");
continueLoop = 0;
}
// 將字符轉換為小寫以便統一判斷
if (ch >= 'A' && ch <= 'Z') {
ch = ch 32;
}
// 判斷字符是否為元音
result = strchr(vowels, ch);
if (result != NULL) {
printf("輸入的字符 '%c' 是元音。 ", ch);
}
// 如果不是元音,則判斷是否為輔音
else if ((ch >= 'a' && ch <= 'z')) {
printf("輸入的字符 '%c' 是輔音。 ", ch);
}
// 如果既不是元音也不是輔音(例如數字或特殊字符),則輸出錯誤信息
else {
printf("輸入的字符 '%c' 既不是元音也不是輔音。 ", ch);
}
}
return 0;
}