下面的代码显示了输入数字的因素:
#include <stdio.h>
#include <stdlib.h>
void factorer(int x);
void factorer2(int x);
int main()
{
int number;
printf("Find factors of: ");
scanf("%d", &number );
}
void factorer(int x)
{
int number;
int dividend;
dividend = x;
for (number = 1; number <= x; number++) {
if(dividend % number == 0) {
printf("%d\n", number);
}
}
}
void factorer2(int x)
{
int number;
int dividend;
dividend = x;
for (number = x; number > 0; number--) {
if (dividend % number == 0) {
printf("%d\n", number);
}
}
}
例如,如果10是输入数字,则输出为
1
2
5
10
10
5
2
1
但我想要的输出就像是
1 x 10
2 x 5
5 x 2
10 x 1
我知道在void
中无法调用printf()
个函数,那么我怎么能够实现这个呢?
我已经尝试了先生@ gene的代码,但输出会显示如下:
1 x 0
2 x 0
5 x 0
10 x 1
不是我想要的输出
答案 0 :(得分:2)
使用:
printf(" %d x %d \n",dividend,number/dividend);
答案 1 :(得分:2)
学习如何将算法分解为函数需要练习。这不是必要的,因为问题很简单。
int main (void) {
int number;
printf("Find factors of: ");
scanf("%d", &number);
for (int i = 1; i <= number; i++)
if (number % i == 0)
printf("%d x %d\n", i, number / i);
return 0;
}