C语言中:将一维数组中的n(n<=50)个数按逆序存放。怎么编程?

C语言中:将一维数组中的n(n<=50)个数按逆序存放。怎么编程?,第1张

思路就是将

数组中第一个和最后野凳一个换位置

第二个和倒数第二个换位置

以此类推

源代码如下:

#include<stdio.h>

int main(){

int n //n个数字

int i //循环变量

int num[50]

scanf("%d",&n)

for(i=0i<ni++) scanf("%d",&num[i])

for(i=0i<n/2i++){

int t //交换值的中间变量

t=num[i]

num[i]=num[n-i-1] //注意是n-i后还要-1

num[n-i-1]=t //因为当n为5的液脊困时候,num[0]对应的是[4]而闹念不是[5]

}

for(i=0i<ni++){

printf("%d ",num[i])

}

return 0

}

以下是C语言程序,使用指针将键盘输入的字符逆序存放,并输出结果:

```c

#include <stdio.h>

#include <string.h>

int main() {

char str[100], temp

int len, i

char *p1, *p2

printf("请输入一个字符串:")

scanf("%s", str)

len = strlen(str)

p1 = str

p2 = str + len - 1 // 指向字符串最后一个字符

for (i = 0i <len/2i++) {

temp = *p1

*p1 = *p2

*p2 = temp

p1++

p2--

}

printf("逆序存放后的字符串为:%s", str)

return 0

}

```

程序先从键盘输入一个字符串,然后获取字符串的长度和指向字符串首尾的指针。接着,使用指针交换相应位置上的字符,完成字符老竖串逆序存放。最后输出逆序存放后的字符串。

注意,字符串的长度可能为奇老派数或偶数,因此在for循环中应该只交换字符串长度除以侍含大2个字符即可。

#include<stdio.h>

#define N 10

int main()

{

int a[N]

int b[N]

int i

printf("请输顷敬世入%d个数",N)

for(i= 0i<Ni++)

scanf("%d"雀肢,&a[i])

for(i=0i<稿租Ni++)

{

b[i] = a[N-1-i]

printf("%d ",a[i])

}

printf("\n")

for(i=0i<Ni++)

printf("%d ",b[i])

printf("\n")

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12400052.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-23
下一篇2023-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存