gpt4 book ai didi

c - Scanf 似乎工作不正常,或者我做错了什么

转载 作者:太空宇宙 更新时间:2023-11-04 05:26:13 26 4
gpt4 key购买 nike

所以我正在尝试做一个简单的程序来寻找任意两个值的最大公分母,但它一直给我这个错误信息,

“xxx.exe 已停止工作。一个问题导致程序停止正常工作。Windows 将关闭该程序并通知您是否有可用的解决方案。”

并使我的程序崩溃。我很困惑,如果你有任何意见,请帮助!

这是我的代码:

#include <stdio.h>
int main (void) {
int first, second;

//Scans in variables
printf("What numbers would you like to find the GCD of?\n");
scanf("%d%d",&first,&second);

int gcd = (first%second);
//Loop
while (gcd !=0)
{
first = second;
second = (first%second);
gcd = (first%second);
}
//Prints output
printf("Your GCD is: %d", second);
return 0;
}

由于 scanf 的问题是我之前唯一一次看到此错误消息,因此我尝试更改

scanf("%d%d", &first, &second); 

各种各样的东西,但它仍然不起作用。

最佳答案

你得到除以零错误

在第二个语句之后,第二个变量将为零,因为第一个和第二个都持有相同的数字所以第三条语句给出除以零

first = second;
second = (first%second);
gcd = (first%second);

这里有一个计算GCD的方法

int 
gcd ( int a, int b )
{
int c;
while ( a != 0 ) {
c = a; a = b%a; b = c;
}
return b;
}

关于c - Scanf 似乎工作不正常,或者我做错了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26208820/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com