C语言指针逆序存放数组元素

C语言指针逆序存放数组元素

#include<stdio.h>

main()

int a[10],b[10],i,j,n,count=0;

scanf("%d",&n);

for(i=0;i<n;i++)

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

for(j=n-1;j>=0;j--)

b[count]=a[j];

count++;

printf("%d",b[0]);

for(i=1;i<n;i++)

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

输入格式:

输入在第一行中给出一个正整数n(1≤n≤10)。第二行输入n个整数,用空格分开。

输出格式:

在一行中输出这n个整数的处理结果,相邻数字中间用一个空格分开,行末不得有多余空格。

输入样例:

4

10812

输出样例:

21810

扩展资料:

printf()用法:

1、printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。

格式输出,它是c语言中产生格式化输出的函数(在stdio.h中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。

要输出的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。

简单点理解就是,在一段程序中你正确使用该函数,可以在该程序运行的时候输出你所需要的内容。

2、printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用printf函数之前必须包含stdio.h文件。

printf()函数的调用格式为:printf("<格式化字符串>",<参量表>)。

其中格式化字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-06-29
#include <stdio.h>
#define N 10
int main()
{
int a[N]={1,2,3,4,5,6,7,8,9,0};
int i,tmp;
int *front,*rear;
printf("The element of original array:\n");
for(i=0;i<N;i++)
printf("%d,",a[i]);
//使用指针实现逆序存放数组元素
front=&a[0];  //指针front初始执行数组首元素
rear=&a[9];   //指针rear初始指向数组尾元素
while(front < rear) //当front<rear时,执行for循环体
{
tmp=*front;*front=*rear;*rear=tmp; //交换front与rear所指向的内存空间的值
front++;  //指针front自增1,指向后一个数组元素
rear--;   //指针rear自减1,指向前一个数组元素
}
printf("\nThe element has been inverted:\n");
for(i=0;i<N;i++)
printf("%d,",a[i]);
printf("\n");
return 0;
}

第2个回答  推荐于2016-10-15

根据题意可得代码:

#include<stdio.h>
int main()
{
    int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}, *p, *q, t, i;
    p = a, q = a+9;
    printf ("The elements of original array:\n");
    for (i = 0; i < 10; i++){
        printf ("%d,", a[i]);
    }
    printf ("\nThe elements has been inverted:\n");
    while (p < q){
        t = *p;
        *p = *q;
        *q = t;
        p++;
        q--;
    }
    for (i = 0; i < 10; i++){
        printf ("%d,", a[i]);
    }
    printf ("\n");
    return 0;
}

本回答被提问者采纳
相似回答