10分,求教。。

P1046 [NOIP2005 普及组] 陶陶摘苹果

ZeeZHANG @ 2017-03-10 21:38:08

#include <iostream>
using namespace std;
int a[10];
int h,ht;
int i,s;
int main()
{
   cin>>a[i];
    cin>>h;
    ht=h+30;
    for (i=0;i<=9;i++)
    {
        if (a[i]<=ht)
        {
            s=s++;
        }
    }
    cout<<s;
    return 0;
}

by ysy666 @ 2017-03-10 22:53:22

@ ZeeZHANG s要赋初值为零,而且中间直接s++就好了


by ysy666 @ 2017-03-10 22:54:18

@ ZeeZHANG


by weneedav @ 2017-03-11 08:38:00

管理员是畜生中的畜生


by wuxinyu @ 2017-03-11 11:03:36

第一:先用循环把a数组十个数!输入了。cin>>a【i】,i的值为零,即a【0】存了一个数,所以你只对了一个数据10分。

第二:if语句里的s=s++直接写成s++就可以了。

第三:提醒上楼的,定义在main主函数外的变量初始都为0。


by 水镜·极光玄现 @ 2017-03-12 16:44:40

#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
int main()
{
    int a[10],b,i,apple=0;
    for(i=1;i<=10;i++)  
    cin>>a[i];
    cin>>b;
    for(i=1;i<=10;i++)
    {
    if(a[i]<=b+30)
    apple=apple+1;
    }
    cout<<apple;
    return 0;
}

by 浩子enjoy @ 2017-03-22 20:55:42

5楼正解


by 1nfinity @ 2017-03-23 13:21:17

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
    int a[10],n,s=0;
    for(int i=0; i<10; i++)cin>>a[i];
    sort(a,a+10);
    cin>>n;
    for(int i=0; i<10; i++)
    {
        if((n+30)>=a[i])s++;
    }
    cout<<s<<endl;
    return 0;
}

by yzxbt @ 2017-05-06 23:27:43

#include <iostream>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int main(int argc, char** argv)
{
    int i,a[15]={},s,n;
    s=0;
    for(i=1;i<=10;i++)
      cin>>a[i];
    cin>>n;
    n+=30;
    for(i=1;i<=10;i++)
      if(a[i]<=n)
        s++;
    cout<<s<<endl;
    return 0;
}

|