C语言无法连续输入

来源:互联网  时间:2016/7/12 19:16:08

关于网友提出的“ C语言无法连续输入”问题疑问,本网通过在网上对“ C语言无法连续输入”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: C语言无法连续输入
描述:

题目:
Input a number N, and do the prime factorization(质因数分解).
The input contains several test cases. Each test case contains exact one integer N.
For each test case, you should output at least one line for the prime factorization of N. For example, if N = 144 = 24 * 32, then you should output two lines for this test case:
2 4
3 2
There should be an empty line between test cases.
 
Data Promise
For all test cases, 2 <= N <= 105
 
Sample Input
2
10
144
 
Sample Output
2 1
2 1
5 1
2 4
3 2
我的代码:

#include
int main() {
    int num, i, j, k = 0, t = 1, test, a[10000] = {0}, b[10000] = {0}, \
    m, n, p;
    while (scanf("%d", &num) != EOF) {
        for (i = 2; i < num; i++) {
            t = 1;
            for (j = 2; j < i; j++) {
                if (i % j == 0) {
                    t = 0;
                    break;
                }
            }
            if (t == 1 && num % i == 0) {
                a[k] = i;
                k++;
            }
        }
        for (m = 0; m < k; m++) {
            n = 1;
            test = a[m];
            while (num % test == 0) {
                test *= a[m];
                n++;
            }
            b[m] = n-1;
        }
        a[k] = b[k] = 0;
        k++;
    }
    for (j = 0; j < k-1; j++) {
        if (a[j] == 0) printf("\n");
        else printf("%d %d\n", a[j], b[j]);
    }
    return 0;
}

我试了一下 输入一个数字答案是对的,但是输入一个,回车,再输入一个,回车,程序就报错退出了,这是为什么呢?
解决方案1:

while (num % test == 0)//有bug,除数为0就出错了
解决方案2:

test第二次的时候变成了0
你可以设个断点看。
 C语言无法连续输入

上一篇WindowAPI编程 中 如何取消BS_CHECKBOX 的勾选
下一篇CheckMenuRadioItem为什么不能勾选菜单项?
明星图片
相关文章
《 C语言无法连续输入》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)