不太清楚自己的问题 ,

题目名称:n倍数关系

题目描述:

给定若干不完全相同的正整数(<10000)和n(n<5),计算这些正整数里面有多少数对满足:其中一个是另一个的n倍。例如:1 4 3 2 9 7 18 22,n=3时得到的答案是2;因为3是1的3倍,9是3的3倍。

输入:输入第一行给出正整数n的值,接下来包括多组测试数据。每组数据最多100个整数占用一行,以数字0结束(不计入100个整数里)。测试数据不超过20组,最后一行只包括-1,表示输入数据结束。

输出:对每组输入数据,输出一行,给出有多少数对满足其中一个是另一个n倍。(注:最后一行末尾无换行符等多余字符。)

样例:

输入:
2
1 4 3 2 9 7 18 22 0
2 4 8 10 0
7 5 11 13 1 3 0
-1
输出:
3
2
0
#include <stdio.h>
int main() {
int a[20][100];
int n, i, j,k,t,l;
int count = 0;
scanf("%d", &n);
for (i = 0;; i++) {
for (j = 0;; j++) {
scanf("%d", &a[i][j]);
if (a[i][j] == 0||a[i][j]==-1)
break;
}
if (a[i][j] == -1)
break;
}
for (k = 0; k < i ; k++) {
for (t = 0; t < j - 1; t++) {
for (l = 0; l < j - 1; l++) {
if (l != t) {
if (a[k][l]==a[k][t]*n)
count++;
}
}
}printf("%d", count);
if (k != i - 1)
printf("\n");
count = 0;
}

return 0;

}



#include <stdio.h>
int main() {
//改a[21][101]
int a[21][101];
int n, i, j,k,t,l;
int count = 0;
scanf("%d", &n);
for (i = 0;; i++) {
    for (j = 0;; j++) {
        scanf("%d", &a[i][j]);
        if (a[i][j] == 0||a[i][j]==-1) break;
    }
    if (a[i][j] == -1)
    break;
}
for (k = 0; k < i ; k++) {
    //改a[k][t] != 0
    for (t = 0; a[k][t] != 0; t++) {
        //改a[k][l] != 0
        for (l = 0; a[k][l] != 0; l++) {
            if (l != t) {
                if (a[k][l]==a[k][t]*n)count++;
            }
        }
    }
    printf("%d", count);
    if (k != i - 1)printf("\n");
    count = 0;
}

return 0;
}