求助 代码在dev-c++成功运行,vs2022却运行失败

Starfallan 2022-01-18 20:59:56

学校的结构体相关作业,给结构体内元素赋值时,vs在终端内打完第一行敲回车直接结束,调试运行显示

0x00007FF94ECF2079 (ucrtbased.dll)处(位于 test.exe 中)引发的异常: 0xC0000005: 写入位置 0x0000009734F00000 时发生访问冲突。

 输入的图

 

但是在dev-cpp中可以正常运行完程序,完成十次赋值。应该是哪里代码写错了,devcpp检查不够严格,麻烦各位大佬劳烦给小白指出错误.

感谢

 代码附在下方,问题出现在最开始的scanf那里,麻烦各位大佬看看

#include <stdio.h>
typedef struct student
{
	char num[10];
	char name[20];
	int grades[3];
}stud;
int main(void)
{
	int a = 0;
	int i;
	int sum1 = 0;
	int sum2 = 0;
	int sum3 = 0;
	stud stu[10];
	printf("学号\t姓名\t三门课的成绩\t\n");
	for (a = 0; a < 10; a++)
	{
		scanf_s("%s%s", stu[a].num, stu[a].name);
		for (i = 0; i < 3; i++)
		{
			scanf_s("%d", &stu[a].grades[i]);
		}
		printf("学号\t姓名\t三门课的成绩\t\n");
	}
	for (i = 0; i < 10; i++)
	{
		sum1 += stu[i].grades[0];
		sum2 += stu[i].grades[1];
		sum3 += stu[i].grades[2];
	}
	printf("三门课的平均成绩分别为%d  %d  %d", sum1 / 10, sum2 / 10, sum3 / 10);
	int max, pos;//求最高工资员工
	int	com[10];
	for (i = 0; i < 10; i++)
	{
		com[i] = stu[i].grades[0] + stu[i].grades[1] + stu[i].grades[2];
	}
	for (a = 0; a < 10; a++)
	{
		max = com[0];
		if (com[a] > max)
		{
			max = com[a];
			pos = a;
		}
	}
	for (a = 0; a < 10; a++)
	{
		if (stu[a].grades == stu[pos].grades)
		{
			if (a != pos)
			{
				printf("最高工资的员工是%s\n", stu[a].name);
			}
		}
	}
	int sum4 = 0;
	for (i = 0; i < 3; i++)
	{
		sum4 += stu[pos].grades[i];
	}
	printf("最高分的学生是%s数据如下\n", stu[pos].name);
	printf("学号%s\n", stu[pos].num);
	printf("姓名%s\n", stu[pos].name);
	printf("三门课成绩分别为\n");
	for (i = 0; i < 3; i++)
	{
		printf("%d", stu[pos].grades[i]);
	}
	printf("三门课平均成绩分别为%d", sum4 / 3);
	return 0;

}

 

...全文
1784 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaozhaozhao21 2022-02-16
  • 打赏
  • 举报
回复

使用vc 2022时在头文件前加
#define _CRT_SECURE_NO_WARNINGS,就不用scanf_s了

forever74 2022-01-18
  • 打赏
  • 举报
回复

scanf_s("%s%s", stu[a].num, 10, stu[a].name, 20);

Starfallan 2022-01-19
  • 举报
回复
@forever74 谢谢大佬,解决了。这是scanf_s函数必须要限定范围吗?刚刚接触vs studio的时候我就知道scanf_s是防止越界的,但是发现在日常使用中scanf_s并不需要设定范围,就没有注意。在数组,结构体这种可能越界的都需要限定范围吗?

70,026

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧