首页 > 其他分享 >5.4 2.3

5.4 2.3

时间:2023-05-04 22:15:07浏览次数:32  
标签:一半 10 5.4 int sweet judge 2.3 return

一、问题描述

 二、分析

循环体是:所有的小孩分一半的糖给右面的人,糖数块为奇数的人找老师要一块。

有十个小孩,定义一个长度为10 的整数型数组,糖果每次经过一次分配就打印一次,直到最后一次打印时,10个小孩所拥有的糖果数都相同,结束循环。

1)定义初始条件

int sweet[10]={10,2,8,22,16,4,10,6,14,20};

2)循环框架

while(是个孩子的糖果数不同)

{

/*将每个孩子手中的糖果分成一半*/

for(i=0;i<10;i++)

if(sweet[i]%2==0)           /*若为偶数则直接分出一半*/

t[i]=sweet[i]=sweet[i]/2;

else

t[i]=sweet[i]=(sweet[i]+1)/2;          /*若为奇数则加1再分出一半*/

/*将分出一半的糖给右边的孩子*/

for(l=0;l<9;l++)

sweet[l+1]=sweet[l+1]+t[l];

sweet[0]+=t[9];

cout<<sweet;            /*输出当前每个孩子的糖果数*/

}

3)定义judge()函数。(判断每个孩子手中的元素是否相同)

int judge(int c[ ])

{

int i;

for(i=0;i<10;i++)

if(c[0]!=c[i])

return 1;     /*不相同返回1*/

else

return 0;     /*相同返回0*/

}

 

三、代码

#include<iostream>
using namespace std;
void print(int s[]);
int judge(int c[]);
int j=0;
int main()
{
static int sweet[10]={10,2,8,22,16,4,10,6,14,20};
int i,t[10],l;
cout<<" child"<<endl;
cout<<" round 1 2 3 4 5 6 7 8 9 10"<<endl;
cout<<"………………………"<<endl;
print(sweet); /*输出每个人手中糖的块数*/
while(judge(sweet)) /*若不满足要求则继续进行循环*/
{
for(i=0;i<10;i++) /*将每个人手中的糖分成一半*/
if(sweet[i]%2==0) /*若为偶数则直接分出一半*/
t[i]=sweet[i]=sweet[i]/2;
else /*若为奇数则加1后再分出一半*/
t[i]=sweet[i]=(sweet[i]+1)/2;
for(l=0;l<9;l++) /*将分出的一半糖给右(后)边的孩子*/
sweet[l+1]=sweet[l+1]+t[l];
sweet[0]+=t[9];
print(sweet); /*输出当前每个孩子中手中的糖数*/
}
}
int judge(int c[])
{
int i;
for(i=0;i<10;i++) /*判断每个孩子手中的糖是否相同*/
if(c[0]!=c[i]) return 1; /*不相同返回 1*/
return 0;
}
void print(int s[]) /*输出数组中每个元素的值*/
{
int k;
cout<<" "<<j++;
for(k=0;k<10;k++)
cout<<s[k];
cout<<endl;
}

四、结果

 

标签:一半,10,5.4,int,sweet,judge,2.3,return
From: https://www.cnblogs.com/yindantong/p/17360377.html

相关文章

  • 5.4每日总结
    今天学习了matlif,学会了其基本的使用并且编写了一些程序,如下: golds.mfunction[xmin,fmin,iter]=golds(fun,a,b,tol)  rho=(sqrt(5)-1)/2;  x1=a+(1-rho)*(b-a);x2=a+rho*(b-a);  f1=fun(x1);f2=fun(x2);  iter=......
  • 5.4
    1#include<iostream>2#include<cmath>3usingnamespacestd;45classPoint6{7private:8intx;9inty;10intz;11public:12voidInput();13voidOutput();14intRuturnX();15intRuturnY();16......
  • 5.4每日总结
    //实例化一个新的窗口,并指定从那个窗口到哪个窗口intent=newIntent(MainActivity.this,secondwindow.class);//将数据发送到intent中intent.putExtra("name",ed_text.getText().toString().trim());//启动新窗口startActivity(intent);//获取intentIntentintent=ge......
  • 5.4每日总结
    今天做了什么:完成了首部导航栏,学习了matlab,完成了0.618算法和最速下降法的matlab编程遇到了哪些困难:当跳转activity时用bundle传递参数过大(图片),容易造成系统崩溃闪退,可以采用全局变量存储,或者解码传递压缩后文件明天打算做什么:继续学习web,完善app......
  • 编程一小时2023.5.4
    1.#include<iostream>usingnamespacestd;inta[501][501];intmain(){intn,sum=0;cin>>n;for(inti=1;i<=n;i++)for(intj=1;j<=n;j++)cin>>a[i][j];for(inti=n;i>=2;i......
  • 5.4
    L1-005考试座位号每个PAT考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领......
  • 每日总结· 5.4
    今日学习了matlab的使用随后进行了html学习/*表格样式*/table{width:90%;background:#ccc;margin:10pxauto;border-collapse:collapse;/*border-collapse:collapse合并内外边距(去除表格单元格默认的2个像素内外边距*/}th,td{height:......
  • 建民打卡日记5.4
    一、问题描述划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就输了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。下面给出甲、乙两人的......
  • 5.4
    #include<stdio.h>intmain(){intt,a[5];longintk,i;for(i=98560;;i++){for(t=0,k=100000;k>=10;t++){a[t]=(i%k)/(k/10);k/=10;}if((a[0]==a[4])&&(a[1]==a[3])){printf("里程表上出现的新的对称数为:%d%d%d%d%d\n",a[0],a[1],a[2],a[3],a[4]);printf(&quo......
  • 5.4打卡
    #include<bits/stdc++.h>usingnamespacestd;unsignedfac(unsignedn){unsignedf;if(n==0)f=1;elsef=fac(n-1)*n;returnf;}intmain(){unsignedn;cout<<"Enterapositiveinteger:";cin>......