c - 用 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);
解决方案
您的代码中存在太多问题:
b
即使给定的数字不能被 [2, 9] 之一整除,您也可以打印 all 的值a
和的目的是n
什么?你还没有初始化
b
。由于这些条件,它可以携带垃圾值。为什么要使用浮点变量?可分性测试仅适用于整数。
解决方案:
无需对模式进行硬编码,只需运行一个循环,同时检查和显示结果。
printf("%d is divisible by:", num);
for (int i = 2; i <= 9; ++i)
{
if (num % i == 0)
{
printf(" %d", i);
}
}
顺便说一句,您的代码也不会检查给定的数字是否也在您想要的范围内。