鱼C论坛

 找回密码
 立即注册
查看: 5812|回复: 16

程序不能运行,求大神指导

[复制链接]
发表于 2013-6-7 16:32:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>
void average(float *p,int n);
void main()
{
int score[3][4]={ {1,3,5,7},{9,11,13,15},{17,19,21,23} };
average(*score,12);
}
void average(float *p,int n)
{
float aver,sum;
int i;
sum=0.0;
for(i=0;i<n;i++)
{
  sum+=*(p+i);
}
aver=(sum/n);
printf("The average is %f",aver);
}

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-6-7 16:55:17 | 显示全部楼层
score 是 float 型


#include <stdio.h>
void average(float *p,int n);
void main()
{
float score[3][4]={ {1,3,5,7},{9,11,13,15},{17,19,21,23} };
average(*score,12);
}
void average(float *p,int n)
{
float aver,sum;
int i;
sum=0.0;
for(i=0;i<n;i++)
{
  sum+=*(p+i);
}
aver=(sum/n);
printf("The average is %f",aver);
}
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-7 17:09:44 | 显示全部楼层
第一,定义类型有点问题
第二,检查你的二维数组传参方式,你的是一维数组的传参方式,而不是二维数组的传参方式
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-7 18:31:13 | 显示全部楼层

只是类型有问题,改了就好了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-7 20:43:09 | 显示全部楼层
这样用指针来传参是可以的。二维数组也是排着来的。{:7_148:}
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-7 22:11:55 | 显示全部楼层
小溪青石 发表于 2013-6-7 18:31
只是类型有问题,改了就好了。

好吧  我的错。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-7 22:33:57 | 显示全部楼层
学习学习。。。。。。。。。。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-11 18:57:35 | 显示全部楼层
去看下指针的定义!在vc++不允许这样定义的!正确的应该是
#include <stdio.h>
void average(int *p,int n);
void main()
{
        int score[3][4]={ {1,3,5,7},{9,11,13,15},{17,19,21,23} };
        average(*score,12);
}
void average(int *p,int n)
{
        float aver,sum;
        int i;
        sum=0.0;
        for(i=0;i<n;i++)
        {
                sum+=*(p+i);
        }
        aver=(sum/n);
        printf("The average is %f \n",aver);
}
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-11 23:32:57 | 显示全部楼层
{:1_1:}average(*score,12);就是这句有问题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-12 00:21:40 | 显示全部楼层
computerwhiz 发表于 2013-6-11 18:57
去看下指针的定义!在vc++不允许这样定义的!正确的应该是
#include
void average(int *p,int n);

就是类型的问题,其他的没问题。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-12 00:26:41 | 显示全部楼层
☆小韦QQ 发表于 2013-6-11 23:32
average(*score,12);就是这句有问题

类型的问题,其他的没问题。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-12 10:43:56 | 显示全部楼层
呵呵~~!互相学习~~!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-12 13:06:47 | 显示全部楼层
友来友网 发表于 2013-6-7 16:55
score 是 float 型

支持支持,鱼C加油!呵呵!!!!!!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-12 13:32:07 | 显示全部楼层
来学习学习。
#include <stdio.h>
void average(float *p,int n);
void main()
{
        float score[3][4] = { {1,3,5,7},{9,11,13,15},{17,19,21,23} };
        average( *score, 12 );
}

void average(float *p,int n)
{
        float aver,sum;
        int i;
        sum=0.0;
        for( i = 0; i < n; i++ )
        {
                //printf( "p%d = %g , ", i, p[i] );
                sum += p[i];
                //printf( "sum = %g\n", sum );
        }
        aver=(sum/n);
        printf( "sum = %g\n", sum );
        printf("The average is %g\n",aver);
}
一起学习,努力吖!!{:7_155:}
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-16 20:06:51 | 显示全部楼层
本帖最后由 寒月独狼 于 2013-6-16 20:08 编辑

,看看啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-16 22:46:33 | 显示全部楼层
为何不是average(score,12)?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-6-16 22:56:22 | 显示全部楼层
用average(*score,12)运行程序没有问题,输出也正确。
用average(score,12)运行,warning提示suspicious pointer conversion---"可疑的指针转换“,运行输出正确。
这里score指向二维数组首地址,为何有问题?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-25 21:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表