首页 > 解决方案 > 用 c 中的一个程序来检查一个 num 是否可以被 2 到 9 整除

问题描述

我是 c 编程的初学者,我尝试编写一个程序,要求输入 1 到 100 之间的数字,然后告诉哪些数字可以被 2 到 9 整除。关键是我打算用 1 printf() 显示结果我写了 8 %f 和变量,但有些数字只有 1 或 2 整除而不是 8 !!!

int num;
float a2,a3,a4,a5,a6,a7,a8,a9,n2,n3,n4,n5,n6,n7,n8,n9;
float b2,b3,b4,b5,b6,b7,b8,b9;
printf("please enter an int number between 1 to 100 \n");
scanf(" %d", &num);
a2=( num % 2 == 0)?(b2=2):(n2);
a3=( num % 3 == 0)?(b3=3):(n3);
a4=( num % 4 == 0)?(b4=4):(n4);
a5=( num % 5 == 0)?(b5=5):(n5);
a6=( num % 6 == 0)?(b6=6):(n6);
a7=( num % 7 == 0)?(b7=7):(n7);
a8=( num % 8 == 0)?(b8=8):(n8);
a9=( num % 9 == 0)?(b9=9):(n9);
printf("your chosen number is divisible by %.0f %.0f %.0f %.0f  %.0f  %.0f %.0f  %.0f ",b2,b3,b4,b5,b6,b7,b8,b9);

标签: c

解决方案


您的代码中存在太多问题:

  1. b即使给定的数字不能被 [2, 9] 之一整除,您也可以打印 all 的值

  2. a和的目的是n什么?

  3. 你还没有初始化b。由于这些条件,它可以携带垃圾值。

  4. 为什么要使用浮点变量?可分性测试仅适用于整数。

解决方案:

无需对模式进行硬编码,只需运行一个循环,同时检查和显示结果。

printf("%d is divisible by:", num);
for (int i = 2; i <= 9; ++i)
{
 if (num % i == 0)
 {
  printf(" %d", i);
 }
}

顺便说一句,您的代码也不会检查给定的数字是否也在您想要的范围内。


推荐阅读