int x,y=0,z=0;int i=0,n=0;
scanf("%d",&x);
for(;i<=19;i++)
{
for(n=0;n<=99;n++)
{
scanf("%d",&a[i][n]);
if(a[i][n]==0||a[i][n]==-1) break;}
if(a[i][n]==-1) break;}
while(a[y][z]!=-1){
while(a[y][z]!=0)
{int kl=z+1; while(a[y][kl]!=0&a[y][z]!=0){if(a[y][z]*x==a[y][kl]||a[y][kl]*x==a[y][z]) shu++;kl++;}z++;
}z=0;if(y!=i-1)
printf("%d\n",shu);
if(y==i-1) printf("%d",shu);
y++;shu=0;
}
if(a[0][0]==-1) printf("0");
}
#include
int a[20][100];
int main(){
int shu=0;
int x,y=0,z=0;int i=0,n=0;
scanf("%d",&x);
for(;i<=19;i++)
{
for(n=0;n<=99;n++)
{
scanf("%d",&a[i][n]);
if(a[i][n]==0||a[i][n]==-1) break;}
if(a[i][n]==-1) break;}
while(a[y][z]!=-1){
while(a[y][z]!=0)
{int kl=z+1; while(a[y][kl]!=0&a[y][z]!=0){if(a[y][z]*x==a[y][kl]||a[y][kl]*x==a[y][z]) shu++;kl++;}z++;
}z=0;if(y!=i-1)
printf("%d\n",shu);
if(y==i-1) printf("%d",shu);
y++;shu=0;
}
if(a[0][0]==-1) printf("0");
}
需要双层for循环遍历
运行结果:
代码:
#include <stdio.h>
int a[100]; //记录所有数据
int nmb[20]; //记录每组数据的个数
int main()
{
int i, j, n = 0, t = 0;//n记录数据的组数
int x;
int flag = 1;
scanf("%d", &x); //x表示倍数
while (1)
{
t = 0;
while (1)
{
scanf("%d", &a[t]);
if (a[t] == 0)
break;
if (a[t] == -1)
{
flag = 0;//结束所有读入
break;
}
t++;
}
if (flag == 0)//结束循环
break;
nmb[n] = 0;
//开始判断
for (i = 0; i < t; i++)
{
for (j = 0; j < t; j++)
{
if (a[i] % a[j] == 0 && a[i] / a[j] == x) //能够整除
nmb[n]++;
}
}
n++;
}
//最后统一输出
for (i = 0; i < n; i++)
{
if(i<n-1)
printf("%d\n", nmb[i]);
else
printf("%d", nmb[i]);
}
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!