| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 606 人关注过本帖
标题:求大神指点;目的在函数中输出学生的成绩,然后找出不及格成绩的个数。编译 ...
只看楼主 加入收藏
CCCRonaldo
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2013-12-9
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:8 
求大神指点;目的在函数中输出学生的成绩,然后找出不及格成绩的个数。编译没有错,但是运行提示错误
#include<stdio.h>
int main()
{
    int n;
    void search (float (*)[4],int);
    float score[3][4]={{65,57,69,70},{53,44,90.98},{67,0,73,82}};
    for(n=0;n<3;n++)
        search(score,n);
    return 0;
}
search (float (* p)[4],int n)
{
    int i,j,t;
    printf("NO.%d student's score are:",n+1);
    for(i=0;i<4;i++)
        printf("%d",* (*(p+n)+i));
    printf("\n");
    for(j=0;j<4;j++)
        if(* (*(p+n)+i)<60)
            t=t+1;
        printf("%d subjects had failed\n",t);
}
运行后,错误提示是unresolved external symbol "void __cdecl search(float (*)[4],int)" (?search@@YAXPAY03MH@Z)
                  fatal error LNK1120: 1 unresolved externals
搜索更多相关主题的帖子: subjects include search return failed 
2013-12-13 13:16
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:0 
把main 移到 search (float (* p)[4],int n)函数 之后

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-12-13 13:50
CCCRonaldo
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2013-12-9
收藏
得分:0 
大神,好像不太好移,移了一下发现编译的时候都出错了。。。
2013-12-13 14:36
flamebaby
Rank: 1
等 级:新手上路
帖 子:7
专家分:3
注 册:2013-12-8
收藏
得分:0 
search()  定义前面加上void   main函数里的search声明  放到main上面
2013-12-13 15:26
pangshch
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:443
专家分:1966
注 册:2013-4-9
收藏
得分:7 
程序代码:
#include<stdio.h>
int main()
{
    int n;
    void search (float (*)[4],int); // 这句放外面 是个好习惯
    float score[3][4]={{65,57,69,70},{53,44,90.98},{67,0,73,82}};
    for(n=0;n<3;n++)
        search(score,n);
    return 0;
}
search (float (* p)[4],int n)   // 最前面少了个 void
{
    int i,j,t;                // t 没初始化.
    printf("NO.%d student's score are:",n+1);        
    for(i=0;i<4;i++)
        printf("%d",* (*(p+n)+i));    // 用%f输出符点数, 建议有空隔, 不然数都连着
    printf("\n");
    for(j=0;j<4;j++)
        if(* (*(p+n)+i)<60)         // 改i 为j
            t=t+1;                   
        printf("%d subjects had failed\n",t);
}
2013-12-13 15:42
flamebaby
Rank: 1
等 级:新手上路
帖 子:7
专家分:3
注 册:2013-12-8
收藏
得分:0 
  printf("%.2f ",* (*(p+n)+i));
2013-12-13 15:44
y3765258
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:106
专家分:172
注 册:2013-4-9
收藏
得分:3 
程序代码:
#include<stdio.h>
void search(int *p[3],int n);
int main()
{
    int score[3][3]={35,67,56,78,45,67,3,57,34};
    search(score,3);


}
void search(int (*p)[3],int n)
{
    int i=0,j=0,t=0;
    printf("the arry score is:");
    for(i=0;i<3;i++)
        for(j=0;j<3;j++)
        {
            printf("%d ",p[i][j]);
            if(p[i][j]<60)
                t++;
        }
        printf("\n");
    printf("no pass have %d\n ",t);
}


我也好久没写代码了,希望对你有帮助。 写程序的时候思路要清晰,既然调用子函数,就在子函数里面尽可能的完成所有操作,不要在主函数里for循环调用了。

有问题一起探讨,一起进步。
2013-12-14 13:30
CCCRonaldo
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2013-12-9
收藏
得分:0 
回复 5楼 pangshch
谢谢您,您的回答对我帮助很大!我刚学C语言不久,课堂上真的很难学到东西,反而大部分问题都是在论坛里得到解决的。感谢您的帮助,我是学信息科学的,觉得编程的用处实在很大!不过想学好它,真的得下点苦工了
2013-12-14 18:32
CCCRonaldo
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2013-12-9
收藏
得分:0 
回复 7楼 y3765258
恩,现在好像编程的思想都是以main函数为大纲,然后通过调用子函数来完成程序的工作。我刚学编程不久,有很多问题和不足,谢谢您的帮助
2013-12-14 18:34
快速回复:求大神指点;目的在函数中输出学生的成绩,然后找出不及格成绩的个数。 ...
数据加载中...
 
   



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

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