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 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?