我试图编写一个程序,从用户(a和b)获取数字 程序将从1计数到x(即a)并输出每次迭代中的数字是否可被y整除(即b)。
//while loop deciding if a is divided by b
for (count = 1; count <= a; count++) {
if (a / b == 0) {
printf("%d is divisible by %d\n", a, b);
}
else if (a / b != 0) {
printf("%d is not divisible by %d\n", a, b);
}
}
return 0 ;
}
但是当我为a输入10而b输入2时,输出为
10 is not divisible by 2
十次
如何更改代码以便检查每次迭代?
答案 0 :(得分:3)
首先 - a / b
告知a
可以按b
分多少次,例如9 / 2
。 4
会给你a % b == 0
。
要知道该部门是否产生提醒,您必须使用9 % 2
。示例:1
会在8 % 2
给您0
时为您提供a
。
下一步 - 您继续使用b
和count
进行循环内的计算。您需要使用a
代替printf
。这同样适用于else
。
并且 - for (count = 1; count <= a; count++) {
if (count % b == 0) {
printf("%d is divisible by %d\n", count, b);
}
else {
printf("%d is not divisible by %d\n", count, b);
}
}
部分不需要条件。
尝试类似:
{{1}}
答案 1 :(得分:1)
#include <stdio.h>
int main()
{
int a;
printf("Enter a 2-digit number: ");
scanf("%d",&a);
for (int i = 0; i < a; i++)
{
if (i%2 == 0)
{
printf("\n%d is even.", i);
}
else if (i%2 != 0)
{
printf("\n%d is odd.",i);
}
}
return 0;
}
这是检查数字是偶数还是奇数的代码。
答案 2 :(得分:0)
您的程序有两个逻辑错误 -
for
循环,以便从1
转到a
,但在循环内的任何位置都没有使用循环变量count
。 a/b == 0
不能用于检查b
是否划分a
,而是使用a%b == 0
。 %
是模运算符,当a
除以b
时返回余数
正确的代码 -
for (count = 1; count <= a; count++) {
if (count%b == 0) {
printf("%d is divisible by %d\n", count, b);
}
else {
printf("%d is not divisible by %d\n", count, b);
}
}
答案 3 :(得分:-1)
每次迭代都使用相同的值,然后您可以使用count变量和最后的变量打印值。 你可以这样写,
for (count = 1; count <= a; count++)
{
if (count % b == 0)
{
printf("%d is divisible by %d\n", a, b);
n += 1;
}
}
printf("count : %d\n",n);
它会显示计数。