| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1963 人关注过本帖
标题:输入数据到数组,提示出错,不知道怎么修改求指点~
只看楼主 加入收藏
w906414
Rank: 2
等 级:论坛游民
帖 子:75
专家分:76
注 册:2015-5-29
结帖率:81.82%
收藏
已结贴  问题点数:20 回复次数:13 
输入数据到数组,提示出错,不知道怎么修改求指点~
代码如下:
double stu[3][5];
get_stu( *stu,5,3);
下面是函数定义:
double get_stu(double *stu,int cols,int rows)
{
    int col,row;
    for(row=0;row<rows;row++)
    {
        for(col=0;col<cols;col++)
        {
            printf("请输入第%d行第%d个数:\n",row+1,col+1);
            scanf("%f",&stu[row][col]);//出错在这里:[Error] invalid types 'double[int]' for array subscript
        }
    }
    return 0;
}
求大神指点下怎么修改,以及为什么出错~谢谢各位
搜索更多相关主题的帖子: double 
2015-08-11 10:35
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:10 
get_stu( *stu,5,3);

把那個*號刪掉

授人以渔,不授人以鱼。
2015-08-11 10:36
w906414
Rank: 2
等 级:论坛游民
帖 子:75
专家分:76
注 册:2015-5-29
收藏
得分:0 
回复 2楼 TonyDeng
去掉之后报错了:    [Error] cannot convert 'double (*)[5]' to 'double*' for argument '1' to 'double get_stu(double*, int, int)'
2015-08-11 10:45
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
漏了,這裡還有欠一個星號
double get_stu(double *stu,int cols,int rows)

授人以渔,不授人以鱼。
2015-08-11 10:49
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
通常多維數組不這樣寫參數,用stu[][5]的形式即可。

授人以渔,不授人以鱼。
2015-08-11 10:54
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:10 
其实我想说这个函数的设计就很奇怪,明明自定义函数传入了三个参数,却失踪了一个!函数原型和函数体可以这么写嘛!如果设计的本意是,传入两个参数,经过函数体在传出一个参数,原型不是这么写的把,又如果传入三个参数,传出一个参数或没有参数传出,很明显这个自定义函数是要传点什么出来的,那么问题来了,楼主的自定义函数第一个参数传入的是数字还是字符,看数据类型因该是数字,可看着怎么第一个参数传入的是写符,如果是字符那数据类型有什么意义,如果是数字,函数原型这样写真的好嘛!
2015-08-11 11:26
w906414
Rank: 2
等 级:论坛游民
帖 子:75
专家分:76
注 册:2015-5-29
收藏
得分:0 
回复 5楼 TonyDeng
我把整体代码发上来,帮我跑一下可以不,因为每该一步都会有新的错误。。导致我不知道怎么改了
#include<stdio.h>
double get_stu(double *stu,int cols,int rows);
double count_row(double *stu,int cols,int rows);
double count_col(double *stu,int cols,int rows);
double count_tot(double *stu,int cols,int rows);
double get_max(double *stu,int cols,int rows);
int main(void)
{
    printf("enter any key to begin or 'q' to quit\n");
    while(getchar()!='q')
    {
        printf("please enter the numbers\n");
        double stu[3][5];
        get_stu(*stu,5,3);
        count_row(*stu,5,3);
        count_col(*stu,5,3);
        count_tot(*stu,5,3);
        get_max(*stu,5,3);   
        while(getchar()!='\n')
        {
            continue;
        }
        printf("enter any key to begin or 'q' to quit\n");
    }
    printf("bye~~~!\n");
    return 0;
}
double get_stu(double *stu,int cols,int rows)
{
    int col,row;
    for(row=0;row<rows;row++)
    {
        for(col=0;col<cols;col++)
        {
            printf("请输入第%d行第%d个数:\n",row+1,col+1);
            scanf("%f",&stu[row][col]);
        }
    }
    return 0;
}
double count_col(double *stu,int cols,int rows)
{
    double num=0;
    int row,col;
    for(col=0;col<cols;col++)
    {   
        num=0;
        for(row=0;row<rows;row++)
        {
            num+=stu[row][col];
        }
        printf("第%d列的平均数:%f\n",col+1,num/rows);
    }
    return 0;
}
double count_row(double *stu,int cols,int rows)
{
    double num=0;
    int row,col;
    for(row=0;row<rows;row++)
    {   
        num=0;
        for(col=0;col<cols;col++)
        {
            num+=stu[row][col];
        }
        printf("第%d个数集的平均数:%f\n",row+1,num/cols);
    }
    return 0;
}
double count_tot(double *stu,int cols,int rows)
{
    double num=0;
    int row,col;
    for(row=0;row<rows;row++)
    {   
        for(col=0;col<cols;col++)
        {
            num+=stu[row][col];
        }
    }
    printf("所有数值平均数:%f\n",num/(cols*rows));
    return 0;
}
double get_max(double *stu,int cols,int rows)
{
    double max=0;
    int row,col;
    for(row=0;row<rows;row++)
    {   
        for(col=0;col<cols;col++)
        {
            max=max<stu[row][col]?stu[row][col]:max;
        }
    }
    printf("数组中最大的数是%f\n",max);
    return 0;
}
2015-08-11 11:27
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <conio.h>

void get_stu(double stu[][5], int cols, int rows);

int main(void)
{
    double stu[3][5];
    int row, col;

    get_stu(stu, 5, 3);

    for (row = 0; row < 3; ++row)
    {
        for (col = 0; col < 5; ++col)
        {
            printf_s("%.4f  ", stu[row][col]);
        }
        putchar('\n');
    }

    _getch();
    return 0;
}

void get_stu(double stu[][5], int cols, int rows)
{
    int row, col;

    for (row = 0; row < rows; ++row)
    {
        for (col = 0; col < cols; ++col)
        {
            scanf_s("%lf", &stu[row][col]);
        }
    }
}


運行畫面:
图片附件: 游客没有浏览图片的权限,请 登录注册

授人以渔,不授人以鱼。
2015-08-11 11:52
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:0 
话句实话,楼主的代码写的XX,作为一个小白,好像没有资格去打击另外一个小白,楼主教材中讲函数的那章应该是和小女友约会去了,,另外一个吃货饿了他会做些什么,怎么才有吃的,是自己弄吃的还是下馆子,得交多少钱?吃不吃的起不给钱的馆子,同理,一个问题也是一样,你的期望是什么,问题是什么,
2015-08-11 11:57
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
樓主看懂了沒有?看清楚運行畫面,我是怎麼輸入數據的,代碼中又是怎樣的。

授人以渔,不授人以鱼。
2015-08-11 12:09
快速回复:输入数据到数组,提示出错,不知道怎么修改求指点~
数据加载中...
 
   



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

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