| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 18030 人关注过本帖
标题:一直提示 error C2059: 语法错误 : “类型” ,求解哪里出现错误 谢谢
只看楼主 加入收藏
heso
Rank: 2
等 级:论坛游民
帖 子:20
专家分:39
注 册:2015-3-15
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:7 
一直提示 error C2059: 语法错误 : “类型” ,求解哪里出现错误 谢谢
#include<stdio.h>
#include<stdlib.h>
struct Student{
    char name[20];
    int num;
    float score;
};
 struct Student max(struct Student stu[])
{
    int i,m=0;
    for(i=0;i<5;i++)
        if(stu[i].score>stu[m].score) m=i;
    return stu[m];

}
int main()
{
    struct Student stu[5]={{"Zhang",10101,85.3},{"Lin",10102,98.5},{"Sun",10103,86},{"Wang",
        10104,68},{"Li",10105,70}};//初始化方式!
    struct Student *p=stu;
    struct Student temp;
    int i;
    int j;
    for(i=0;i<5;i++)
        printf("%s,%d,%0.2f\n",stu[i].name,stu[i].num,stu[i].score);
    puts("Sort:\n");
    for(i=0;i<5-1;i++)
        for(j=i+1;j<5;j++)
            if(stu[i].score>stu[j].score)
            {temp=stu[i];stu[i]=stu[j];stu[j]=temp;}
    for(;p<stu+5;)
    {
        printf("%s,%d,%0.2f\n",p->name,p->num,p->score);p++;
    }
    puts("The max is:\n");
    temp=max(stu);
    printf("%s,%d,%0.2f\n",temp.name,temp.num;temp.score);
    system("pause");
    return 0;
}
搜索更多相关主题的帖子: include return include return 
2015-03-27 16:54
n0noper
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:39
专家分:159
注 册:2015-3-21
收藏
得分:5 
printf("%s,%d,%0.2f\n",temp.name,temp.num;temp.score);
这一行,分号 改成 逗号
另外,错误截个图或者说明哪一行,谢谢。

不骄不躁,不卑不亢;虚怀若谷,宠辱不惊。
2015-03-29 19:38
heso
Rank: 2
等 级:论坛游民
帖 子:20
专家分:39
注 册:2015-3-15
收藏
得分:0 
回复 2楼 n0noper
大神为我解决一个粗心的错误,首先十分感谢!
修改后,以下是编译结果:
1>------ 已启动生成: 项目: practice, 配置: Debug Win32 ------
1>正在编译...
1>strcut.c
1>d:\c_practice\vs\practice\practice\strcut.c(9) : warning C4003: “max”宏的实参不足
1>d:\c_practice\vs\practice\practice\strcut.c(9) : error C2059: 语法错误 : “类型”
1>d:\c_practice\vs\practice\practice\strcut.c(19) : warning C4003: “max”宏的实参不足
1>d:\c_practice\vs\practice\practice\strcut.c(19) : error C2059: 语法错误 : “类型”
1>d:\c_practice\vs\practice\practice\strcut.c(29) : warning C4305: “初始化”: 从“double”到“float”截断
1>d:\c_practice\vs\practice\practice\strcut.c(47) : warning C4003: “max”宏的实参不足
1>d:\c_practice\vs\practice\practice\strcut.c(47) : error C2059: 语法错误 : “)”
1>生成日志保存在“file://d:\c_Practice\vs\practice\practice\Debug\BuildLog.htm”
1>practice - 3 个错误,4 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
2015-03-30 09:00
执笔画江山
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:265
专家分:1010
注 册:2015-1-13
收藏
得分:0 
你这个就是2楼说的那个问题。
1.分号改成逗号。printf("%s,%d,%0.2f\n",temp.name,temp.num;temp.score);
2.%0.2f改成%0.2lf
然后程序就可以完美运行了

授人以鱼,不如授人以渔
2015-03-30 09:10
liting561199
Rank: 2
等 级:论坛游民
帖 子:17
专家分:22
注 册:2015-3-24
收藏
得分:0 
回复 4楼 执笔画江山
我时初学者,为什么%fo.2和%f0.21.会有这么大差别。
2015-03-30 09:22
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用liting561199在2015-3-30 09:22:51的发言:

我时初学者,为什么%fo.2和%f0.21.会有这么大差别。

o是英语字符 0是数字 两个完全不一样啊 当然差别大
2015-03-30 09:25
chen441107
Rank: 2
等 级:论坛游民
帖 子:3
专家分:19
注 册:2015-3-27
收藏
得分:15 
主要的错误是struct Student max(struct Student stu[])这个max函数,数学库函数中存在这个函数,你跟它重名了,编译时会按照库当中函数的参数来,你把这个函数名重新修改下就好。
2015-03-30 09:27
执笔画江山
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:265
专家分:1010
注 册:2015-1-13
收藏
得分:0 
先写对再问吧!!!
是%0.2f和%0.2lf
一个是单精度的,一个是双精度的,这个具体根据你自己定义的参数类型进行配对就OK了!!至于0.2这是控制输出格式。你自己百度好好学一下,有很多这方面的资料

授人以鱼,不如授人以渔
2015-03-30 09:27
快速回复:一直提示 error C2059: 语法错误 : “类型” ,求解哪里出现错误 谢谢
数据加载中...
 
   



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

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