按照以下要求编写c语言程序定义一个字符数组,从键盘给该字符数组赋值(小于20个字符),编写程序判断输入的字符串是否对称。比如adeda就是对称,aweer就不对称,输出结果为对称与否。
时间: 2024-04-11 17:33:53 浏览: 119
好的,以下是按照您的要求编写的C语言程序:
```c
#include <stdio.h>
#include <string.h>
int isSymmetric(char arr[], int length) {
int i, j;
for (i = 0, j = length - 1; i < j; i++, j--) {
if (arr[i] != arr[j]) {
return 0; // 不对称
}
}
return 1; // 对称
}
int main() {
char arr[20];
printf("请输入一个小于20个字符的字符串:");
scanf("%s", arr);
int length = strlen(arr);
int result = isSymmetric(arr, length);
if (result == 1) {
printf("输入的字符串是对称的\n");
} else {
printf("输入的字符串不是对称的\n");
}
return 0;
}
```
在这个程序中,我们使用了`isSymmetric`函数来检查输入的字符串是否对称。该函数接受一个字符数组和数组长度作为参数,然后使用两个指针从数组的两端向中间遍历,比较对应位置的字符是否相等。如果有任意一对字符不相等,就返回0,表示不对称;如果遍历完整个数组都没有发现不相等的字符,就返回1,表示对称。
在`main`函数中,我们首先声明了一个长度为20的字符数组`arr`,用于存储从键盘输入的字符串。然后使用`scanf`函数获取输入的字符串。接着,我们调用`isSymmetric`函数来判断输入的字符串是否对称,并将结果打印出来。
请注意,该程序假设输入的字符串长度不超过20个字符,超过的部分将被丢弃。
阅读全文