温馨提示:获取更多内容请关注微信公众号zstu就业
题目描述
作为算术能力计划的一部分,您的学生将被随机生成2到15个唯一正整数的列表,并要求确定每个列表中有多少项是同一列表中其他项的两倍。 您将需要一个程序来帮助您进行评分。该程序应该能够扫描列表并为每个列表输出正确的答案。例如,给定列表1 4 3 2 9 7 18 22,您的程序应该回答3,因为2是两次1,4是两次2,18是两次9。
输入
输入文件将包含一个或多个数字列表。每行将有一个数字列表。每个列表将包含2到15个唯一正整数。所有整数都小于99。每一行以整数0结束,0不被视为列表的一部分。 带有单个数字-1的行表示文件输入结束。下面的示例输入显示了3个单独的列表。某些列表可能不包含任何符合条件的数。
输出
每一行输入列表都有一行输出,输出该列表中有多少项是同一列表中其他项的两倍。
样例输入 Copy
1 4 3 2 9 7 18 22 0 2 4 8 10 0 7 5 11 13 1 3 0 -1
样例输出 Copy
3 2 0
#include<stdio.h>
int main()
{
int b[20];
int i,a;
while(1)
{
scanf("%d",&a);
if(a==-1)
{
break;
}
else
{
b[0]=a;
for(i=1;i<20;i++)
{
scanf("%d",&a);
if(a==0)
{
break;
}
else
{
b[i]=a;
}
}
}
int sum=0;
for(int j=0;j<i;j++)
{
for(int k=0;k<i;k++)
{
if(b[j]==2*b[k])
{
sum++;
}
}
}
printf("%d\n",sum);
}
return 0;
}
![点击并拖拽以移动 wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==](https://i-blog.csdnimg.cn/blog_migrate/e8dd5eac55f9fdba04cc88395c7476e9.gif)