输入10个整数存入一维数组,在按逆序重新存放后输出

 

指针的实现方式。如有帮助,望采纳。

#include <stdio.h>
#include <stdlib.h>

void swap(int *p,int n);

int main(void){
 int a[10],i,*p=a;
 printf("请输入十个整数:\n");
 for(i=0;i<10;i++,p++)
  scanf("%d",p);
 p=a;
 swap(p,10);
 printf("逆序输出结果:\n");
 for(p=a;p<a+10;p++)
  printf("%3d",*p);
 system("pause");
}
void swap(int *p,int n)
{
 int *i,*t,*k=(n-1+p);
 for(i=p;i<(n/2+p);i++)
 {
  t=*i;
  *i=*k;
  *k=t;
  k--;
 }
}

 

#include "stdio.h"

int main(){

    int a[10];
    int i;
    int t;
    for(i=0;i<10;i++){
        scanf("%d",&a[i]);
    }
    for(i=0;i<5;i++){
        t =a[i];
        a[i] = a[9-i];
        a[9-i]=t;
    }
    printf("输出结果如下:\n");
    for(i=0;i<9;i++)
        printf("%d\t",a[i]);
}

 

按题目要求编写如下代码,可用请采纳支持

void main()
{
    int a[10],temp;
    int *p,*q;
    printf("请输入10个整数,用空格分隔:");
    for(p=a;p<a+10;p++)
        scanf("%d",p);
    for(p=a,q=a+9;p<q;p++,q--)
    {
        temp = *p;
        *p = *q;
        *q = temp;
    }
    for(p=a;p<a+10;p++)
        printf("%d ",*p);
}

 

 

#include <stdio.h>
#include <stdlib.h>

void swap(int *p,int n);

int main(void){
 int a[10],i,*p=a;
 printf("请输入十个整数:\n");
 for(i=0;i<10;i++,p++)
  scanf("%d",p);
 p=a;
 swap(p,10);
 printf("逆序输出结果:\n");
 for(p=a;p<a+10;p++)
  printf("%3d",*p);
 system("pause");
}
void swap(int *p,int n)
{
 int *i,*t,*k=(n-1+p);
 for(i=p;i<(n/2+p);i++)
 {
  t=*i;
  *i=*k;
  *k=t;
  k--;
 }
}

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632