| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2438 人关注过本帖
标题:用指针取代取下标来访问数组元素
只看楼主 加入收藏
达尔文
Rank: 2
等 级:论坛游民
帖 子:84
专家分:29
注 册:2015-8-22
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:12 
用指针取代取下标来访问数组元素
计算a[0]*b[0]+a[1]*b[1]+....+a[n-1]*b[n-1].要求使用指针算术运算而不是取下标来访问数组元素.
程序代码:
#include<stdio.h>

#define N 5


 double e[N];

 double f[N];
  double sum;

double inner_product( const double *a,  const double *b, int n);

int main()
{
    
    double s;
    
    double *c ;
    double *d ;
    c =e;
    d =f;
    
    printf("请输入数组一:");
    
    for (c = e; c < e +N; c++)
       scanf("%lf", c);
       
    printf("请输入数组二:");  
                 
    for (d = f; d < f +N; d++)
       scanf("%lf", d);    
       
    s = inner_product( c,  d,  N);   
    
    printf("%lf\n",s);
    
    return 0;
}

double inner_product( const double *a, const double *b, int n)
{
   int j;
    
    for (a = e; a < e + n; a++)                                   //最终修改结果
        for (b = f; b < f + n; b++){
            j = *a++ * *b;
            sum += j;
        }
    return sum;         
}
编译过了,但输入后求结果会闪退,虚心求教

[ 本帖最后由 达尔文 于 2015-10-8 09:45 编辑 ]
搜索更多相关主题的帖子: color 元素 
2015-10-07 21:56
达尔文
Rank: 2
等 级:论坛游民
帖 子:84
专家分:29
注 册:2015-8-22
收藏
得分:0 
擦.突然想到不能返回局部变量,好致命

能有一件喜欢的事很不容易,就坚持下去吧.....
2015-10-07 22:03
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你连在哪里出错都不知道,瞎猜是不行的。

授人以渔,不授人以鱼。
2015-10-07 22:17
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
这种问题,坛上问过、解决过,没有一千次,也有八百次,平时多参与别人的讨论,不会害着你的。这种很频繁的问题,不答你也完全可以,晾到底,别说人家冷淡,自找的。

授人以渔,不授人以鱼。
2015-10-07 22:20
达尔文
Rank: 2
等 级:论坛游民
帖 子:84
专家分:29
注 册:2015-8-22
收藏
得分:0 
回复 4楼 TonyDeng
什么情况

能有一件喜欢的事很不容易,就坚持下去吧.....
2015-10-07 22:27
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:5 

    printf("请输入数组一:");
   
    for (i = 0; i < N; i++)
       scanf("%lf", c);
      
    printf("请输入数组二:");  
                 
    for (i = 0; i < N; i++)
       scanf("%lf", d);

数组还可以这么玩,涨见识了
2015-10-07 22:32
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:0 
//BUG_a 取址符除了字符串就不能省约掉
//BUG_b 说好的数组呢!


   printf("请输入数组一:");
   
    for (i = 0; i < N; i++)
       scanf("%lf", &c[N]);
      
    printf("请输入数组二:");  
                 
    for (i = 0; i < N; i++)
       scanf("%lf", &d[N]);
2015-10-07 22:37
达尔文
Rank: 2
等 级:论坛游民
帖 子:84
专家分:29
注 册:2015-8-22
收藏
得分:0 
回复 7楼 hjx1120
1.指针的储存方法错了.2.c.d是指针所有不用取址符.

能有一件喜欢的事很不容易,就坚持下去吧.....
2015-10-07 22:47
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:15 
inner_product函数的for循环结束条件有问题,a < a + n和b < b + n这是恒成立的,死循环

总有那身价贱的人给作业贴回复完整的代码
2015-10-08 07:28
达尔文
Rank: 2
等 级:论坛游民
帖 子:84
专家分:29
注 册:2015-8-22
收藏
得分:0 
回复 9楼 embed_xuel
一针见血.soga

能有一件喜欢的事很不容易,就坚持下去吧.....
2015-10-08 09:46
快速回复:用指针取代取下标来访问数组元素
数据加载中...
 
   



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

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