首页 > 解决方案 > 模数在不应该改变变量值时

问题描述

模数正在改变值,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--;}

}

标签: cvariableswhile-loopmodulo

解决方案


谨防将问题归咎于语言结构(尤其是定义明确的数学结构)。

问题是你的代码。它不会做你认为它会做的事情。您正在尝试使用两种相互竞争的方法来完成您的任务。重来。当您遍历可能的除数时,从 2 开始计数。您的变量名选择也对您没有帮助。

请记住,计算机不会帮助您解决此任务。作为程序员,你的工作首先是自己解决任务,其次才是告诉计算机如何去做。


推荐阅读