编写程序,以指针的方式,就地逆置一维数组。

输入格式:

首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。每组测试数据先输入数据个数n,然后输入n个整数。

输出格式:

对于每组测试,在一行上输出逆置之后的结果。数据之间以一个空格分隔。

样例">输入样例:

2
4 1 2 5 3
5 4 3 5 1 2

输出样例:

3 5 2 1
2 1 5 3 4

不懂是指针的话可以理解一下这个,这是题目的常规做法:

#include <stdio.h>
int main()
{int a,b=0,c=0,p[100],d,e,m;scanf("%d",&a);for(;b<a;b++){scanf("%d",&m);for(c=0;c<m;c++){scanf("%d",&p[c]);}for(c=0,d=m-1;c<m/2;c++,d--){e=p[d];//一定要除以2,不然没变化p[d]=p[c];p[c]=e;}for(c=0;c<m;c++){if(c==0){printf("%d",p[c]);}else{printf(" %d",p[c]);}}printf("\n");}return 0;}

这是题目的指针做法(数组指针):

#include <stdio.h>
int main()
{int a,b=0,c=0,d,e,m;scanf("%d",&a);for(;b<a;b++){scanf("%d",&m);int p[m];int (*k)[m];//数组指针 k=&p;//p交地址给k指针 for(c=0;c<m;c++){scanf("%d",&p[c]);}//用指针代替数组运算 for(c=0,d=m-1;c<m/2;c++,d--){//c<m/2中的m一定要除以2,不然没变化e=(*k)[d];(*k)[d]=(*k)[c];(*k)[c]=e;}for(c=0;c<m;c++){if(c==0){printf("%d",p[c]);}else{printf(" %d",p[c]);}}printf("\n");}return 0;} 

最后:

第一个代码是我以前没注意看是用指针写的,反正对了我就没理了

新学期,又来了很多人学习C语言,看到那么多人都搜到了我这一题,我感觉就不好意思了,特地赶回来写一下标准的答案,给予你们借鉴。

2022.11.28

最近抽出点时间,本来想改进的,想了想之后,我觉得这样已经很好了

首先呢,这道题指针的话,其实本意是让咱们熟悉一下指针,并不要求必须用指针,

指针在我看来,主要在数据结构方面,比较复杂的情况才用到,比如顺序表,链表,树等等之类,其中的插入删除操作是用指针操作的,不必因为这道题,而感觉指针很难理解,下次这种情况用非指针方式写出来即可,指针只是不适合这个情况,肯定也写得出,就是比非指针方式更加麻烦,加油。

2023.4.13

PTA 7-1 逆置一维数组 (10 分)相关推荐

  1. 1.6编程基础之一维数组 10大整数加法

    1.6编程基础之一维数组 10大整数加法 OpenJudge - 10:大整数加法 1168:大整数加法 信息学奥赛一本通(C++版)在线评测系统 P1601 A+B Problem(高精) A+B ...

  2. 【PTA】6-1 顺序表基本操作(10 分)

    题目来自 网络与信息安全-数据结构作业1-数据结构基本概念 6-1 https://fancyking.ml/archives/71 原题描述 6-1 顺序表基本操作(10 分) 本题要求实现顺序表元 ...

  3. PTA程序设计基础6 7-2 字符串合成 (10 分) C语言解法

    用户输入一个字符串,将下标为偶数的字符串提出来合并成一个新的字符串A,再将下标为奇数的字符串提出来合并成一个新的字符串B,再将字符串A和B连接起来输出. 输入格式: 输入一行字符串,如:abcdefg ...

  4. pta 6-7 使用函数求最大公约数 (10 分)

    本题要求实现一个计算两个数的最大公约数的简单函数. 函数接口定义: int gcd( int x, int y ); 其中x和y是两个正整数,函数gcd应返回这两个数的最大公约数. 裁判测试程序样例: ...

  5. C语言:数组的初始化,打印,逆置(使用函数实现)。

    #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h>//void Init(int a[], int b) //数组初始化函数(已注释), ...

  6. 顺序表2:顺序表的逆置

    一.顺序表逆置基本逻辑和实现 1.顺序表逆置的逻辑 将顺序表丛中间一分为二. 如果这个顺序表元素个数为i: 让第一个元素和最后一个元素互换, 第二个和倒数第二个元素互换: - 第i/2个元素和第i/2 ...

  7. 实现带头结点的单链表元素就地逆置

    每日数据结构基础题2-1 题目:试编写在带头结点的单链表L中对链表的元素进行逆置(所谓就地是指辅助空间复杂度为O(1)) 方法一 完整代码如下: 方法二 完整代码如下: 题目:试编写在带头结点的单链表 ...

  8. C语言编程>第二十一周 ② 请补充main 函数,该函数的功能是:把一维数组中的元素逆置,结果仍然保存在原数组中。

    例题:请补充main 函数,该函数的功能是:把一维数组中的元素逆置,结果仍然保存在原数组中. 注意:仅在横线上填写所需的若干表达式或语句,请勿改动函数中的其它任何内容. 代码如下: #include& ...

  9. 将数组前n个和后m-n个整体逆置的实现

    #include <iostream>using namespace std;/*void inverst(int *R,int s,int t){int k,w;for(k=s;k< ...

最新文章

  1. 图书管理系统5W1H
  2. 深入浅出任务队列机制,非常浅
  3. linux(六)之文本操作
  4. linux下svn客户端安装及环境配置
  5. TabLayout基本属性全解
  6. [ACNOI2021]OEIS yyds
  7. MySQL命令行登录数据库
  8. 开源网络负载测试工具测评
  9. Character controller
  10. 基于GitLab+Docker+K8S的持续集成和交付
  11. 不用安装Excel使用PSExcel自动处理Excel文件
  12. 一篇文章轻松搞定SpringSecurity权限框架!
  13. ai替换混合轴例子_可解释的vs可解释的AI:一个直观的例子
  14. 阿里云一键登录(对接移动端) PHP
  15. 【Excel】如何使用RegexString正则表达式
  16. 站长天下:buyren网上购物论坛的发展
  17. MT4如何添加交易品种?
  18. mysql中floa类型数据和mysql命令
  19. C语言 乒乓球比赛问题
  20. python小游戏 五子棋小游戏设计与实现

热门文章

  1. 什么样男人天生吸引女人
  2. HmacSHA256签名验签
  3. C语言字符数组赋值问题
  4. java学习第16天
  5. OA系统行业解析:中小企业实施OA系统的意义
  6. get,post请求区别
  7. 直播系统压测应该怎么做?
  8. 大数据:广州租房信息统计,这些地方最便宜
  9. 【笔记】学习雷神SpringBoot2零基础入门视频笔记1
  10. Altera Quartus 13.1 仿真工具路径错误问题解决 Can‘t launch the ModelSim-Altera software