LMX_fuck
LMX_fuck
采纳率50%
2015-12-31 08:40 阅读 5.2k
已采纳

我的这个程序在VS2010上可以编译成功,但是在VS2015上就不行,求指导啊,。。

#include
#include
struct student{ /* 学生结构体 /
int num;
char name[20];
char optional[2];
union{
float mark; /
百分制分数成员mark /
char grade; /
五级制等级成员grade /
}score; /
成绩共用体 /
};
void main()
{
struct student stu[50];
int i,n; /
n:学生人数 /
//在两条星线间填入相应代码,定义相当的计数器变量并置初值
/
*******************************************************************/
int c[5]={0,0,0,0,0},count=0;
float avg=0;
int bxrs=0;
/********************************************************************/

    /* 输入n个学生成绩记录,统计必修学生人数和总成绩 */
    printf("请输入学生人数:");
    scanf("%d",&n);
    printf("请依次输入%d个学生成绩记录:\n",n);
    for(i=0;i<n;i++){
        printf(">>%d:学号  姓名  选课类型(T-选修,F-必修):",i+1);
        scanf("%d%s%s",&stu[i].num,stu[i].name,stu[i].optional);
        getchar();      /* 读回车符 */
        if(strcmp(stu[i].optional,"T")==0){
            printf(">>成绩等级:");
            scanf("%c",&stu[i].score.grade);
        }
        else{
            printf(">>成绩分数:");
            scanf("%f",&stu[i].score.mark);

            //在两条星线间填入相应代码,统计必修学生人数和总成绩
            /********************************************************************/
            bxrs++;
            avg+=stu[i].score.mark;

            /********************************************************************/
        }
    }
    avg=avg/bxrs;       /* 计算必修学生平均成绩 */

    /* 分类统计选修学生各等级人数和必修学生超平均分人数 */
    for(i=0;i<n;i++){
        //在两条星线间填入代码, 分类统计选修学生各等级人数和必修学生超平均分人数
        /**********************************************************************/
        if(strcmp(stu[i].optional,"T")==0){
            switch(stu[i].score.grade){
                case 'A':c[0]++;break;
                case 'B':c[1]++;break;
                case 'C':c[2]++;break;
                case 'D':c[3]++;break;
                case 'E':c[4]++;break;
            }
        }

        else{
            if(stu[i].score.mark>avg)count++;
        }


        /**********************************************************************/
    }

    /* 输出统计结果 */
    printf("选修学生:A=%d,B=%d,C=%d,D=%d,E=%d\n",c[0],c[1],c[2],c[3],c[4]); 
    printf("必修学生:平均成绩=%.2f,超过平均成绩学生人数=%d\n",avg,count); 

}

他是这样报错的:
1>------ 已启动生成: 项目: ConsoleApplication1, 配置: Debug Win32 ------
1> proj10_2.cpp
1>e:\c语言!!!\实验10 共用体与枚举\第2题\proj10_2.cpp(25): error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files (x86)\windows kits\10\include\10.0.10240.0\ucrt\stdio.h(1270): note: 参见“scanf”的声明
1>e:\c语言!!!\实验10 共用体与枚举\第2题\proj10_2.cpp(29): error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files (x86)\windows kits\10\include\10.0.10240.0\ucrt\stdio.h(1270): note: 参见“scanf”的声明
1>e:\c语言!!!\实验10 共用体与枚举\第2题\proj10_2.cpp(33): error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files (x86)\windows kits\10\include\10.0.10240.0\ucrt\stdio.h(1270): note: 参见“scanf”的声明
1>e:\c语言!!!\实验10 共用体与枚举\第2题\proj10_2.cpp(37): error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files (x86)\windows kits\10\include\10.0.10240.0\ucrt\stdio.h(1270): note: 参见“scanf”的声明
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

4条回答 默认 最新

  • 已采纳
    sinat_33201468 大抵如此罢__ 2016-01-01 02:28

    在你新建win32项目时,把安全开发生命周期检查,的,勾去掉图片

    点赞 2 评论 复制链接分享
  • zoujh2000 zoujh2000 2015-12-31 09:03

    提示说的非常清楚了,用scanf_s替换scanf

    点赞 评论 复制链接分享
  • LMX_fuck LMX_fuck 2015-12-31 09:49

    看不懂啊,为什么要用scanf_s,scanf_s是啥

    点赞 评论 复制链接分享
  • Mr_dsw Andoter 2015-12-31 10:06

    版本的问题,会有些小差别。用scanf_s替换scanf

    点赞 评论 复制链接分享

相关推荐