将一个数组逆序输出。(正序输入,反序输出)
时间: 2024-05-12 12:18:46 浏览: 109
可以使用循环遍历数组,然后依次将元素存储到另一个数组中,最后将新数组逆序输出即可。也可以直接在原数组上进行交换操作,从两端开始,依次交换对应位置的元素,直到中间位置。以下是两种方法的示例代码:
方法一:
```python
arr = [1, 2, 3, 4, 5]
new_arr = []
for i in range(len(arr)-1, -1, -1):
new_arr.append(arr[i])
print(new_arr) # Output: [5, 4, 3, 2, 1]
```
方法二:
```python
arr = [1, 2, 3, 4, 5]
left = 0
right = len(arr) - 1
while left < right:
arr[left], arr[right] = arr[right], arr[left]
left += 1
right -= 1
print(arr) # Output: [5, 4, 3, 2, 1]
```
相关问题
编写一函数,将字符串s的正序和反序连接在一起,形成一个新字符串放在t所指的数组中,主函数负责数据的输入输出。自定义函数格式为:void str_cat(char *s, char *t)
以下是实现该函数的代码:
```c
#include <stdio.h>
#include <string.h>
void str_cat(char *s, char *t) {
int len = strlen(s);
int i;
// 将t的字符逆序复制到s的末尾
for (i = strlen(t) - 1; i >= 0; i--) {
s[len++] = t[i];
}
s[len] = '\0';
}
int main() {
char s[100], t[100];
printf("请输入字符串s: ");
fgets(s, 100, stdin);
s[strlen(s) - 1] = '\0'; // 去掉fgets读入的换行符
printf("请输入字符串t: ");
fgets(t, 100, stdin);
t[strlen(t) - 1] = '\0';
str_cat(s, t);
printf("连接后的字符串为: %s\n", s);
return 0;
}
```
函数`str_cat`的实现思路是先计算出字符串`s`的长度,然后从字符串`t`的末尾开始逆序复制字符到`s`的末尾,最后在`s`的末尾添加一个字符串结束符`\0`。主函数中先读入字符串`s`和`t`,调用`str_cat`函数连接两个字符串,并输出结果。
c语言编程判断输入的一串字符是否为“回文”。所谓“回文”是指顺序读和逆序读都一样的字符串。如:“12321”和“abcdcba”都是回文。
判断一个字符串是否为回文可以通过比较字符串正序和反序是否相同来实现。具体实现可以通过以下步骤:
1. 定义一个字符数组来存储输入的字符串。
2. 通过scanf等方法获取用户输入的字符串。
3. 定义两个指针变量,一个指向字符串的第一个字符,另一个指向字符串的最后一个字符。
4. 使用循环比较两个指针指向的字符是否相等,如果有一个不相等则说明该字符串不是回文。
5. 如果循环结束后所有字符都相等,则说明该字符串是回文。
下面是示例代码:
```
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
int len = strlen(str);
int flag = 1; // 标记是否为回文
for (int i = 0, j = len - 1; i < len / 2; i++, j--) {
if (str[i] != str[j]) {
flag = 0;
break;
}
}
if (flag) {
printf("%s是回文\n", str);
} else {
printf("%s不是回文\n", str);
}
// 相关问题
printf("
阅读全文