C程序计算输入式而不是预输入式

cmssoen2  于 2022-12-11  发布在  其他
关注(0)|答案(1)|浏览(177)

我在一个小麻烦,试图找出方法,使我的代码运行的基础上输入的数字,而不是有他们被预先键入和结果。
所以基本上,我想输入x个数字,然后程序计算出最大的素数。
谢谢你!
编码:

#include <stdio.h>
int maxprost(int *niz, int vel) {
    int *r = niz, maxcl = 0, i;
    while (niz < r + vel) {
        if (*niz < 2)
            goto dalje;
        for (i = 2; i < *niz; i++) {
            if (*niz % i == 0) {
                goto dalje;
            }
        }
        if (*niz > maxcl) {
            maxcl = *niz;
        }
dalje:;
      niz++;
    }
    return maxcl;
}
int main() {
    int niz[10] = {2, 41, 61, 3712, 4444, 1794, -3311, 7, 8, 1};
    int biggest = maxprost(niz, 10);
    printf("%d Is the biggest number!", biggest);
    return 0;
}
vfh0ocws

vfh0ocws1#

如果你跟踪每个输入数的最大素数,你不需要数组,只要有输入就保存这个最大素数。

#include <stdio.h>

int maxprost(int old_biggest, int candidate) {
    if (candidate < 2) {
        return old_biggest;
    }
    for (int i = 2; i < candidate; i++) {
        if (candidate % i == 0) {
            return old_biggest;
        }
    }
    if (old_biggest < candidate) {
        old_biggest = candidate;
    }
    return old_biggest;
}

int main(void) {
    int biggest = 0;
    int candidate;
    while (scanf("%d", &candidate) == 1) {
        biggest = maxprost(biggest, candidate);
    }
    printf("%d is the biggest prime!", biggest);
    return 0;
}

请注意,我保留了你确定主属性的方法。还有其他和/或更好的方法,但这不是这里的问题。

相关问题