解题思路:首先要定义两个数组,一个是初始输入的r数组,一个是在内循环中改变的t数组,并在结束内层循环时将t数组赋值给r数组,并在下一个循环开始时清空t数组,依次循环。然后要定义一个函数来判断t数组中的数据是否都相同,若相同,便在输出k后为其附一个比较大的值,来结束外层循环.

注意事项:

参考代码:

#include<iostream>

using namespace std;

int prime(int n,int b[])

{       int y=0;

   for(int j=0;j<n-1;j++)

        if(b[j]==b[j+1])

              y=y+1;

   if(y==(n-1))

         return 1;

    else 

         return 0;      

}

int main()

{   int r[100],n,k;

    cout<<"请输入一个大于2小于1000的整数:"; 

    cin>>n;

    cout<<endl;

cout<<"请输入"<<n<<"个偶数,每个大于2小于1000"<<endl;

for(int i=0;i<n;i++)

    cin>>r[i]; //每一个人的糖果数

cout<<"输入结束"<<endl; 

for(;k!=10000;)

{   

   int t[100]={0};  

    for(int i=0;i<n;i++)

   {  if(i==0)

         t[i]=r[i]/2+r[n-1]/2;

      else

         t[i]=r[i]/2+r[i-1]/2;

   }

for(int i=0;i<n;i++)

    { if((t[i]%2)==0)

         t[i]=t[i];

      else

         {  t[i]=t[i]+1;

             k=k+1;

}

    }

if(prime(n,t)==1)

      { cout<<"老师要补发的糖果数:"<<k;

        k=10000;

  }

else   

for(int l=0;l<n;l++)  //为r数组重新赋值,并在接下来清空t数组 

      r[l]=t[l];

}

    return 0;

}


点赞(0)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 1 条评论

偶尔说说昔日 2年前 回复TA
在devc++上试了几组数据,都是对的,和那些运行正确的代码结果一样,但就是在c语言网上运行答案出错,跪求大佬指出错误。