| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 445 人关注过本帖
标题:指针数组问题
只看楼主 加入收藏
莫丶
Rank: 2
来 自:济南大学
等 级:论坛游民
帖 子:48
专家分:45
注 册:2011-1-2
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
指针数组问题
用指针将一个整数数组的元素的值改为当前元素与相邻的下一个元素的乘积,最后1个改为第0个和最后1个元素的乘积;
我写的程序:
#include"stdio.h"
void main()
{
    int *p,a[3],i;
    p=a;
    for(i=0;i<3;i++)
        scanf("%d",&a[i]);
    *(p+2)=a[0]*a[2];
    for(i=0;p<a+2;p++,i++)
        *p=*(p)**(p+1);   
for(i=0;i<3;i++)
printf("%d",a[i]);
}
   如果输入2 3 4 正确结果为 6 12 8 我的为 6 24 8   我知道是
for(i=0;p<a+2;p++,i++)   *p=*(p)**(p+1);有问题,可是不是有p++了 怎么相乘后*p的值又带到下一次里面去了   
搜索更多相关主题的帖子: 元素 
2011-04-07 22:37
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:5 
#include"stdio.h"
void main()
{
    int *p,a[3],i,j;
    p=a;
    for(i=0;i<3;i++)
        scanf("%d",&a[i]);
    j=a[0];  //要记住第一个元素,不然以后会变
    for(i=0;i<2;p++,i++)
        *p=*(p)*(*(p+1));
     *(p+2)=j*a[2];   
    for(i=0;i<3;i++)
        printf("%d",a[i]);
}


[ 本帖最后由 qq1023569223 于 2011-4-7 22:55 编辑 ]

   唯实惟新 至诚致志
2011-04-07 22:51
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
指针!!!!!!!!!!!!!(咆哮状)

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-04-07 23:25
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:15 
以下是引用qq1023569223在2011-4-7 22:51:41的发言:
程序代码:
#include"stdio.h"
void main()
{
    int *p,a[3],i,j;
    p=a;
    for(i=0;i<3;i++)
        scanf("%d",&a[i]);
    j=a[0];  //要记住第一个元素,不然以后会变
    for(i=0;i<2;p++,i++)
        *p=*(p)*(*(p+1)); 
     *(p+2)=j*a[2]; // <----- 这是错的,而且很危险滴~~
    for(i=0;i<3;i++)
        printf("%d",a);
}

稍改一下你的代码
程序代码:
#include"stdio.h"
void main()
{
    int *p, a[3], i;
    p = a;
    for (i = 0; i < 3; i++)
        scanf("%d", &a[i]);
    i = a[0];
    for(; p - a < 2; p++)
        *p = *p * (*(p+1));
    *p = i * *p; // <-----------
    for(i = 0; i < 3; i++)
        printf("%d ", a[i]);
}


[ 本帖最后由 voidx 于 2011-4-7 23:32 编辑 ]
2011-04-07 23:31
Kid_X
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:216
专家分:515
注 册:2007-10-8
收藏
得分:0 
LZ先做了第三个数乘以第一个数
所以产生了错误的结果

对于2楼的改法,直观的看似乎也有问题,应该是越界了。不过没运行过,不确定。
2011-04-07 23:32
dyrtt
Rank: 1
等 级:新手上路
帖 子:6
专家分:3
注 册:2011-3-29
收藏
得分:0 
其实这个问题不能叫做指针数组问题,而应该是指向数组的指针。
2011-04-08 08:01
dyrtt
Rank: 1
等 级:新手上路
帖 子:6
专家分:3
注 册:2011-3-29
收藏
得分:0 
关键问题就是for循环中使用啊a[2]*a[3]的时候啊a[3]已经变了。
2011-04-08 08:03
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:0 
难道指针之间也可以比较大小?

   唯实惟新 至诚致志
2011-04-08 08:05
快速回复:指针数组问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021048 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved