13961636353 发表于 2021-11-7 14:37:55

救命孩子真的不会

编写程序将用户输入的字符串中的数组字符找出,拼成一个自然数,程序打印这个自然数的所有因子,每行输出三个因子。如用户输入了 12df5h6,程序输出自然数1256的所有因子。

jhq999 发表于 2021-11-7 16:31:55

本帖最后由 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月圆 发表于 2021-11-7 18:28:20

本帖最后由 花好s月圆 于 2022-7-28 14:32 编辑

字符串分割,字符判断,学一本老谭的书就行了。

此山中 发表于 2021-11-7 23:38:29

#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]
查看完整版本: 救命孩子真的不会