我是靠谱客的博主 漂亮鸵鸟,最近开发中收集的这篇文章主要介绍hw机试题8/10下午第二题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

/*
**给出n个数字,n小于等于20,判断第2:n个数字中是否存在和等于第1个数。
**标准输入如:10 5 4 6
**由于不知道数字的具体个数,所以需要将输入以字符串的形式读入,然后再从中提取中数字。
**首先选用char指针实现。
*/
#include<string>
#include<iostream>
#include"stdio.h"
using namespace std;
int main()
{
char *buffer=new char[21];
int i[20]={0},n=0,j=0,flag=0,p=0,sum=0;
gets(buffer);
while(*buffer!='')
{
if(*buffer!=' ')//如果该位为数字,则将其转化。并将flag置为0。
{
p=1;//p若为0,则说明,还没有出现数字字符。
n=n*10+*buffer-'0';
i[j]=n;
i[j+1]=EOF;
flag=0;
}
else if(flag==0)//如果flag为0,说明该字符的前一个字符非空格,则应该将i的下标+1.并将连续空格的个数flag+1。
{
n=0;
flag++;
if(p==1)//只有当出现数字字符了,才将j+1,防止字符串的第一个字符为空格的情况时,就将下标由0变为1了。
j++;
}
else//该位不是数字位,且该位的前一位也是空格位,此时,将空格个数+1,而不增加i的下标。
{
flag++;
}
buffer++;
}
for(int j=0;j<20;j++)
{
cout<<i[j]<<' ';
}
cout<<endl;
j=0;n=0;
while(i[j]!=EOF)
{
n++;
j++;
}
for(int j=1;j<n;j++)
{
while(sum<i[0])
{
sum=sum+i[j];
}
if(sum==i[0])
{
cout<<"yes";
return 1;
}
sum=0;
}
cout<<"no";
return 0;
}


最后

以上就是漂亮鸵鸟为你收集整理的hw机试题8/10下午第二题的全部内容,希望文章能够帮你解决hw机试题8/10下午第二题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部