【C++】7-1寻找250(PTA)(有疑惑)

题目描述
在这里插入图片描述

对方不想和你说话,并向你扔了一串数…… 而你必须从这一串数字中找到“250”这个高大上的感人数字。

输入格式:
输入在一行中给出不知道多少个绝对值不超过1000的整数,其中保证至少存在一个“250”。

输出格式:
在一行中输出第一次出现的“250”是对方扔过来的第几个数字(计数从1开始)。题目保证输出的数字在整型范围内。

输入样例:

888 666 123 -233 250 13 250 -222

输出样例:

5

代码

#include<iostream>
using namespace std;
int main(){
	int a[10000],s;
	for(int i=0;i<10000;i++){
		cin>>a[i];
		if(cin.get() =='\n')
			break;
		
	} 
	for(int i=0;i<sizeof(a)/sizeof(int);i++){
		if(a[i]==250){
			s=i+1;
			break;
		}	
	}
	cout<<s;
}

这是天梯赛的一道真题,应该是最简单的一个题了吧,刚一看我也感觉挺简单的,但一做发现也并没有那么简单,首先遇到的第一个问题就是怎么判断一行数据是否输入完毕。于是查了一下用的是cin.get()来判断输入的字符是否是回车。本来我用的是while语句

whilescanf("%d",&a[i]!=EOF)

不知道哪里出了问题,我记着之前C语言应该就是这样判断的,但不知道为什么在这里就不行。
本来我想的是在输入的同时判断那个数值等于250然后把i赋值给新的变量,但发现并不只是一个250,所以行不通,只能在用一个for循环来判断了,不过感觉有点复杂。
这是大佬的代码
原文链接:https://blog.csdn.net/qq_41376345/article/details/85177310


#include<stdio.h>
int main()
{
    int a,i;
    i=0;
    while(1)//循环为真的的条件
    {
        scanf("%d",&a);
        if(a==250)	break;
        i++;
    }
    printf("%d\n",i+1);//i+1循环开始从0开始计数
    return 0;
}

利用while语句,当a==250的时候,i不在加一,于是最终结果就是i+1.

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值