poj 1552 Doubles【goto语句】

简介:

看了一下网上这道题的报告,大家都叫题目水。

说这道题水证明没有深入思考这道题的一种情况,有的人2次完全扫描数组也解决了这道题,那种解法不在讨论之列。

这种情况就是<1,3>组合,我开始写的是if(a[j]==a[i]*2 || (a[j]==a[i]/2 && a[i]%a[i]==0))count++;这样就把这种情况算在里面了,肯定是WA了

还有就是通过了这道题会用了goto,而且知道POJ是不排斥goto语句的


上AC的代码

#include <stdio.h>

int a[20];

void dosomething(int num)//num是每一个list数的个数
{
	//test
	int i;
	/*for(i=0;i<num;i++)
		printf("%d ",a[i]);
	printf("\n");*/

	int j;
	int count=0;
	for(i=0;i<num-1;i++)
	{
		for(j=i+1;j<num;j++)
		{
			//printf("i==%d j==%d\n",i,j);
			if(a[j]==a[i]*2 || (a[j]==a[i]/2 && a[i]%2==0))
				count++;
		}
	}

	printf("%d\n",count);
}

int main()
{
	int i,tmp;
	
	while(1)
	{
		for(i=0; ;i++)
		{
			//首先输入数据
			scanf("%d",&tmp);
			if(tmp==-1)
				goto END;
				//return 0;

			if(tmp==0)
			{
				dosomething(i);
				break;
			}

			a[i]=tmp;
		}
	}
	
	END: return 0;
	//return 0;
}

相关文章
|
1月前
|
C++
c++跳转语句goto的介绍
c++跳转语句goto的介绍
16 0
|
2月前
|
程序员 Go 开发者
Go语言中的跳转控制结构:`goto`、`break` 和 `continue`
【2月更文挑战第3天】在Go语言中,跳转控制结构允许程序员直接控制程序的执行流程,通过`goto`、`break`和`continue`关键字实现代码的跳转、退出循环或跳过循环的某次迭代。本文将深入探讨这些跳转控制结构的使用场景、注意事项以及最佳实践,帮助读者更好地理解和应用Go语言中的跳转控制结构。
|
5月前
|
C语言
选择结构程序设计和循环控制(if语句,switch语句,条件运算符,for循环,while及do while语句,break,continue,goto语句)折半查找法及猜数字游戏带你巩固理解
选择结构程序设计和循环控制(if语句,switch语句,条件运算符,for循环,while及do while语句,break,continue,goto语句)折半查找法及猜数字游戏带你巩固理解
33 0
|
6月前
|
小程序 C语言
goto的应用举例及详解
goto的应用举例及详解
35 0
|
8月前
|
C语言
|
9月前
|
C语言 Windows
C语言语句(3)——goto语句
C语言语句(3)——goto语句
|
10月前
|
Python
16.从入门到精通:range() 函数 break 和 continue 语句及循环中的 else 子句 break语句 continue语句 循环中的else子句 pass 语句
16.从入门到精通:range() 函数 break 和 continue 语句及循环中的 else 子句 break语句 continue语句 循环中的else子句 pass 语句
|
10月前
|
C语言
【C语言—零基础第八课】循环结构与break continue
生活总最不缺的就是循环了,地球绕着太阳转、一周7天、一天24小时、一小时60分钟这就是循环。在C语言中也存着循环。如果让你使用C语言答应出100条“我喜欢C语言”,你会选择什么样的方法,我想你一定不想打出100条print(“我喜欢C语言\n”);太累了,又无脑。所以我们学的循环结构就是用来解决这个问题的,循环语句有while、do-while、for。
395 0
|
11月前
|
C语言
【C语言】break 和 continue 的理解
break 只能在循环和 switch 语句中使用,作用是退出最近的循环或switch语句。