使用while循环判断回文c语言
时间: 2024-02-21 07:54:15 浏览: 32
以下是使用while循环判断回文的C语言代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int i, len, flag = 0;
printf("Enter a string: ");
scanf("%s", str);
len = strlen(str);
for(i=0;i<len;i++){
if(str[i]!=str[len-i-1]){
flag = 1;
break;
}
}
if(flag){
printf("%s is not a palindrome\n", str);
}
else{
printf("%s is a palindrome\n", str);
}
return 0;
}
```
相关问题
c语言while循环判断回文数
以下是C语言while循环判断回文数的代码:
```c
#include <stdio.h>
int main() {
int num, reversed_num = 0, remainder;
printf("请输入一个整数:");
scanf("%d", &num);
int original_num = num;
while (num != 0) {
remainder = num % 10;
reversed_num = reversed_num * 10 + remainder;
num /= 10;
}
if (original_num == reversed_num) {
printf("%d是回文数\n", original_num);
int sum = 0;
while (original_num != 0) {
sum += original_num % 10;
original_num /= 10;
}
printf("该回文数各位数字之和为:%d\n", sum);
} else {
printf("%d不是回文数\n", original_num);
}
return 0;
}
```
c语言如何判断回文数组
回文数组是指正着读和倒着读都一样的数组。判断一个数组是否是回文数组,可以采用双指针的方法,具体步骤如下:
1. 定义两个指针i和j,分别指向数组的首尾元素。
2. 使用while循环,判断i是否小于j,若是则执行下一步,否则跳出循环。
3. 判断array[i]和array[j]是否相等,若相等则将i指针向后移动一位,将j指针向前移动一位,继续执行while循环;若不相等则说明数组不是回文数组,直接返回false。
4. 如果while循环正常执行完毕,则说明数组是回文数组,返回true。
以下是C语言代码示例:
```c
#include <stdio.h>
#include <stdbool.h>
bool isPalindrome(int array[], int length) {
int i = 0, j = length - 1;
while (i < j) {
if (array[i] != array[j]) {
return false;
}
i++;
j--;
}
return true;
}
int main() {
int array[] = {1, 2, 3, 2, 1};
int length = sizeof(array) / sizeof(array[0]);
if (isPalindrome(array, length)) {
printf("The array is palindrome.\n");
} else {
printf("The array is not palindrome.\n");
}
return 0;
}
```
上述代码定义了一个函数isPalindrome,该函数接受一个数组和数组长度作为参数,返回一个bool类型的值,表示该数组是否是回文数组。在main函数中,我们定义了一个数组并调用了isPalindrome函数来判断该数组是否是回文数组。如果是,则输出"The array is palindrome.",否则输出"The array is not palindrome."。