vs2019一个求最大公因数的程序报错无法运行
#include<stdio.h>//求最大公约数int main()
{
int p,r,n,m,temp;
printf("请输入需要求取公约数的两个整数\n");
scanf_s(" % d % d", &n,&m);
if (n < m)//排序让n为更大的数
{
temp = n;
n = m;
m = temp;
}
p = n * m;
while (m!=0)//循环求余来求得最大公约数
{
r= n% m;
n= m;
m = r;
}
printf("%d", n);
return 0;
}
这个程序代码和课本的答案一模一样但是编译的时候就报错
0x00007FFE73C3AFEC (ucrtbased.dll) (5.3公约数公倍数.exe 中)处有未经处理的异常: 将一个无效参数传递给了将无效参数视为严重错误的函数。
想请教一下大神我错在哪里 或者vs2019如何单步单步运行调试 {:10_250:}{:10_250:}{:10_250:}{:10_250:}{:10_250:} 你用的是 gcc 头文件 <stdio.h>,而scanf_s 是微软所有,你的代码应该写 scanf() 傻眼貓咪 发表于 2021-10-22 14:04
你用的是 gcc 头文件 ,而scanf_s 是微软所有,你的代码应该写 scanf()
stdio.h 不是 gcc 的头文件,是 C标准的头文件
傻眼貓咪 发表于 2021-10-22 14:04
你用的是 gcc 头文件 ,而scanf_s 是微软所有,你的代码应该写 scanf()
符合 C标准的编译器都有这个头文件
人造人 发表于 2021-10-22 14:48
符合 C标准的编译器都有这个头文件
{:5_106:} scanf_s(" % d % d", &n,&m); // 这里的 &d 需要相连, 第 6 行
scanf_s(" % d % d", &n,&m);
改为
scanf_s("%d %d", &n,&m);
在%和d 之间加空格是几个意思?
页:
[1]