m0_74131296 2022-12-11 21:45 采纳率: 88.9%
浏览 81
已结题

pta7-9指针与数组

img

题目代码如下


#include<stdio.h>
int main(){
    int a[10]={0,1,2,3,4,5,6,7,8,9};
    int i,*p1,*p2,*p3;
    p1=a,p2=a+5,p3=a+7;               //相当于 p1=&a[0],p2=&a[5],p3=&a[7]; 
    printf("%ld,%ld,%ld\n",p1,p2,p3); //输出指针的值(数组元素地址值) 
    printf("%d,%d,%d\n",*p1,*p2,*p3); //输出指针指向变量的值 
    printf("%d,%d\n",p1-p2,p2-p1);    //指针减法 
    printf("%d,%d\n",p1>p2,p1==a);    //指针与指针的关系 
    for(p1=a;p1<a+10;p1++)            //通过指针遍历数组 
      printf("%d ",*p1);
    return 0;    
}

要求用指针做

  • 写回答

1条回答 默认 最新

  • a5156520 2022-12-13 10:23
    关注

    首先可以用一个循环获取一行整数到数组中;然后使用一个int指针指向数组最后一个元素,然后逐个往数组前面打印各个值即可。代码如下:

    参考链接:
    C 库函数 – scanf() | 菜鸟教程

    #include <stdio.h>
    
    int main(void){
        
        int nums[50];
        int i=0;
        
    //    scanf("%d",&nums[i]); // 读取一个整数到数组 
    //    while(getchar()!='\n'){ //如果没有遇到换行符,则循环读取整数到数组nums中 
    //        i++;  // 指向数组下一个元素位置 
    //        scanf("%d",&nums[i]); 
    //    }
    
        
        while(scanf("%d",&nums[i])!=EOF){ //如果没有遇到换行符,则循环读取整数到数组nums中 
            i++;  // 指向数组下一个元素位置 
        
        }
        
        int * j=nums+i-1; // 用一个int指针指向数组最后一个元素位置 
        while(j>=nums){  //如果int指针j的地址值大于等于数组首元素的地址,则循环打印指针j指向的元素值 
            
            if(j==nums){
                printf("%d",*j); //打印指针j指向的值 
            } else{
                printf("%d ",*j); //打印指针j指向的值 
            }
            
            j--;  //指针j指向数组前一个位置元素的地址 
        }
        //printf("end");
        
        return 0;
    } 
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 3月15日
  • 已采纳回答 3月7日
  • 创建了问题 12月11日

悬赏问题

  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥15 树莓派5怎么用camera module 3啊
  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事: