c - 模数在不应该改变变量值时
问题描述
模数正在改变值,primer
因为当我在找到模数之前打印它时,我得到了它的实际值,但是在找到模数后它有时会变成零或一。它是一个程序,用于确定用户输入的数字是否为质数。
#include<stdio.h>
int main(){
int num;
int primer;
int mod;
printf("enter num> ");
scanf("%d", &num);
primer = num-1;
while(primer > 0){
mod = num%primer;
if(mod == 0){
printf("not prime");
break;}
if(primer == 1){
printf("prime");
break;}
primer--;}
}
解决方案
谨防将问题归咎于语言结构(尤其是定义明确的数学结构)。
问题是你的代码。它不会做你认为它会做的事情。您正在尝试使用两种相互竞争的方法来完成您的任务。重来。当您遍历可能的除数时,从 2 开始计数。您的变量名选择也对您没有帮助。
请记住,计算机不会帮助您解决此任务。作为程序员,你的工作首先是自己解决任务,其次才是告诉计算机如何去做。
推荐阅读
- excel - 跨多个工作表计算数据
- python - peewee.OperationalError:由于未完成的语句或未完成的备份而无法关闭
- android - firebase ML kit 美学照片质量
- r - 无法在文件目录中添加双引号
- rxjs - 如何将两个对象列表与 Rxjs 组合在一个列表中
- angular - 使用 service-worker 构建一个 Angular 应用程序以在子目录中使用
- android - 使用 com.google.android.material.* UI 组件时出现“MissingRegistered”Lint 警告
- c - 来自 dbghelp 的“SymEnumSymbols”回调中的“symbolSize”参数是什么?
- django - 如何创建属于唯一用户的模型对象
- c# - 从反序列化对象更新 ListView