c++打卡第十七天

一、问题描述

二、设计思路

①、对于每个小孩得所得到的糖果数我们可以定义一个数组存储它们。
②、需要进行循环结构,同时循环停止的条件为10个小孩得糖果数相同。
③、小孩所得得糖果为奇数时需要向老师要一块后才再次分一半给后一个小朋友,这时候我们需要选择结构来实现。
④、我们可以通过定义函数实现每次结果数的打印。
三、流程图

 四、代码实现

#include<iostream>
using namespace std;
int judge(int a[],int n) {
    for(int i=1; i<n; i++) {
        if(a[0]!=a[i]) {
            return 1;
        }
    }
    return 0;
}
int main() {
    int n;
    cin>>n;
    int a[n];
    int t[n];
    int c=1;
    for(int i=0; i<n; i++) {
        cin>>a[i];
    }
    cout<<"次数"<<endl; 
    while(judge(a,n)) {
        for(int i=0; i<n; i++) {
            if(a[i]%2==0) {
                a[i]=a[i]/2;
            } else {
                a[i]=(a[i]+1)/2;
            }
        }
        for(int i=1; i<n; i++) {
            t[i]=a[i-1];
        }
        t[0]=a[9];
        for(int i=0; i<n; i++) {
            a[i]=a[i]+t[i];
        }
        cout<<c;
        c++;
        for(int i=0; i<n; i++) {
            cout<<"    "<<a[i];
        }
        cout<<endl;
    }
    return 0;
}

五、结果实现

 

posted @ 2023-04-27 12:25  七安。  阅读(26)  评论(0编辑  收藏  举报