A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

//用指针反转数组,要求键盘输入数组长度和数组元素,遇到了点疑问,谁能解答一下,下面程序是OK的,但是当代#的两行先定义就会出现
//得不到想要的值,在后面定义就OK,什么情况呢
//  main.c,
//  指针练习7
//
//  Created by 李言 on 15/6/15.
//  Copyright (c) 2015年 ly. All rights reserved.
//

#include <stdio.h>
//#define SIZE 10
//要求:利用指针,反转数组,如:该数字数组6 7 8 9 ,反转后得到该数组9 8 7 6
int main(){
    int len = 0, i = 0, tmp=0, j=0;
//    int num[len];##########
//    int *p = num;#########
    printf("输入数组长度\n");
    scanf("%d", &len);//**********先给数组长度变量值,再去用它********
    int num[len];
    int *p = num;
    printf("输入数组元素\n");
    for(i=0; i<len; i++){
        scanf("%d", p+i);
    }
    for(i=0; i<len; i++){
        printf("%d\t", *(p+i));
    }
    printf("\n");
    //    i从第一个数组元素开始,j从最后一个元素开始
    for(i=0,j=len-1; i<=j; i++,j--){
        tmp = *(p+i);
        *(p+i) = *(p+j);
        *(p+j) = tmp;
    }
//    遍历输出数组
    for(i=0; i<len; i++){
        printf("%d\t", *(p+i));
    }
    printf("\n");
    return 0;
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马