| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3440 人关注过本帖
标题:调试了很多遍,还是不行,可以帮我看看么
只看楼主 加入收藏
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:5 
回复 6楼 九转星河
void main() 不单纯是不符合标准,main函数的返回值是给宿主看的,也就是操作系统。

这东西都说太多次了,我已经懒得说了,爱怎样怎样吧,反正如果准备进入程序员这行,很多问题早晚得正视,到时候就是被同事喷了。

当然了,能靠C吃饭的人,很少。

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-06-06 20:41
wFengJ
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2017-6-6
收藏
得分:0 
回复 10楼 大大哟nice
void level()函数是想给成绩等级分类
2017-06-06 20:47
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
程序代码:
#include<stdio.h> 
#include<string.h>
#define N 10
typedef struct 
{
    long num;
    char name[10];
    char sex; 
    float score;
}Employee;

Employee employee[N];
void level(Employee employee[]);
{
    int i,best=0,medium=0,bad=0;
    for(i=0;i<N;i++)
     if(employee[i].score>=90)
         best++;
     else if(employee[i].score>=60 && employee[i].score<90)
         medium++;
     else bad++;
  printf("优秀人数:%d\n合格人数:%d\n不合格人数:%d\n",best,medium,bad);     
}
void main(){

 void print(Employee employee[])//傻不傻,print这个函数没有被调用!没有被调用!没有被调用!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
{//你老师如果已经死了,记得去挖他的坟,竟然不告诉你函数需要调用。
    int i;
    for(i=0;i<N;i++)
{
    printf("请输入第%d个职工的信息:\n",i+1);
    printf("请输入职工考号:\n");
    scanf("%ld",&employee[i].num);
    printf("请输入职工姓名:\n");
    scanf("%s",&employee[i].name);
    printf("请输入职工性别(男/女):\n");
    scanf("%s",&employee[i].sex);
    printf("请输入职工成绩:\n");
    scanf("%f",&employee[i].score);
    }
    printf("刚才所输入的职工信息是:\n");
    printf("Num Name Sex Score\n");
    for(i=0;i<N;i++)
    scanf("%ld %s %s %f",&employee[i].num,&employee[i].name,&employee[i].sex,
    &employee[i].score);
}
}

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-06-06 20:47
大大哟nice
Rank: 2
等 级:论坛游民
威 望:3
帖 子:15
专家分:30
注 册:2016-11-26
收藏
得分:0 
回复 11楼 renkejun1942
void main() 和int main()在一定程度上能否画上=号,在一些程序中会不会引发一些问题?
2017-06-06 20:50
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 14楼 大大哟nice
不能等同的。

其实如果要很严格的说,void main()不能算错,只是要这样写,只在特俗的没有操作系统的环境中,但是在这样的环境中,连main()函数都不需要写。

main()的返回值是操作系统用来判断程序是否成功结束的,你说有没有关系?

[此贴子已经被作者于2017-6-6 20:56编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-06-06 20:53
大大哟nice
Rank: 2
等 级:论坛游民
威 望:3
帖 子:15
专家分:30
注 册:2016-11-26
收藏
得分:0 
回复 15楼 renkejun1942
那是不是就是在硬件中的c语言开发?
2017-06-06 20:55
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:5 
当然已有大神反复强调了规范,还是希望题主能遵守。尽管我不排斥void,但我非科班啊,乡下出来的,使的都是野路子,不要学!
主要是两处错误:
1:void level(Employee employee[]);
去掉分号,否则这句就是个函数声明
2:主函数里嵌套其他函数,这是不符合语法的。
代码修改如下编译成功:
程序代码:
#include<stdio.h> 
#include<string.h>
#define N 10
typedef struct 
{
    long num;
    char name[10];
    char sex; 
    float score;
}Employee;

Employee employee[N];
void level(Employee employee[])
{
    int i,best=0,medium=0,bad=0;
    for(i=0;i<N;i++)
        if(employee[i].score>=90)
            best++;
        else if(employee[i].score>=60 && employee[i].score<90)
            medium++;
        else bad++;
        printf("优秀人数:%d\n合格人数:%d\n不合格人数:%d\n",best,medium,bad);     
}
void main()
    //    void print(Employee employee[])
{
    int i;
    for(i=0;i<N;i++)
    {
        printf("请输入第%d个职工的信息:\n",i+1);
        printf("请输入职工考号:\n");
        scanf("%ld",&employee[i].num);
        printf("请输入职工姓名:\n");
        scanf("%s",&employee[i].name);
        printf("请输入职工性别(男/女):\n");
        scanf("%s",&employee[i].sex);
        printf("请输入职工成绩:\n");
        scanf("%f",&employee[i].score);
    }
    printf("刚才所输入的职工信息是:\n");
    printf("Num Name Sex Score\n");
    for(i=0;i<N;i++)
        scanf("%ld %s %s %f",&employee[i].num,&employee[i].name,&employee[i].sex,
        &employee[i].score);
}
2017-06-06 20:56
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 17楼 xzlxzlxzl
嵌套函数合乎语法,C99标准。

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-06-06 20:57
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:0 
回复 18楼 renkejun1942
学习了!
赶快百度了下,http://c.是说函数不能嵌套,http://blog.说函数嵌套是gcc扩展功能里允许,既是扩展就应该不算标准。
看来还是学习不够
2017-06-06 21:12
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 19楼 xzlxzlxzl
不是的,很多东西的确是某些编译器的扩展,但是后来进入了标准。

变长数组(C99)、灵活域数组(C99)、gets_s(C11)曾经都是某些编译器的扩展,但是它们现在都进入了标准。
还有其他的很多的。

C89以后的标准,在网上很难找到。(也许google上会容易些,也许)

嵌套函数让构建私有函数更方便,避免了污染名字空间。

[此贴子已经被作者于2017-6-6 21:23编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-06-06 21:13
快速回复:调试了很多遍,还是不行,可以帮我看看么
数据加载中...
 
   



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

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