救命孩子真的不会
编写程序将用户输入的字符串中的数组字符找出,拼成一个自然数,程序打印这个自然数的所有因子,每行输出三个因子。如用户输入了 12df5h6,程序输出自然数1256的所有因子。 本帖最后由 jhq999 于 2021-11-7 16:34 编辑不是代码仅仅是思路
valsum=0
if('0'<=ch&&'9'>=ch)
{
valsum*=10;
valsum+=ch-'0';
}
i=2//别忘了1 和它本身
while(i<=valsum)
{
if(!(valsum%i))
{
//i是因子
valsum/=i;//除完了i的valsum也是因子
}
i++;
} 本帖最后由 花好s月圆 于 2022-7-28 14:32 编辑
字符串分割,字符判断,学一本老谭的书就行了。 #include <stdlib.h>
#include <stdio.h>
void get_factor(int n, int num[]);
int main() {
char s;
scanf("%s", s);
int num = 0;
for(int i=0; i<100; i++) {
if(s == '\0') break;
if(s >= '0' && s <= '9') {
num = num * 10 + (s - '0');
}
}
int factor;
get_factor(num, factor);
for(int i=0; i<100; i++) {
if(factor == 0) break;
if(i%3==0) printf("\n");
printf("%d\t", factor);
}
printf("\n");
system("pause");
return 0;
}
void get_factor(int n, int factor[]) {
int pos = 0;
while(n>1) {
for(int i=2; i<=n; i++) {
if(n % i == 0) {
factor = i;
n /= i;
break;
}
}
}
return;
}
页:
[1]