#include <stdio.h>
// 判断数组中的元素是否全部相等
int myequals(int arr[])
{
// 默认全部相等
int is = 1;
int i;
for(i=0; i<9; i++)
{
// 若找到两个不相等
if(arr[i]!=arr[i+1])
{
is = 0;
// 已经找到不相等,结束循环
break;
}
}
return is;
}
// 打印数组
void myprt(int arr[])
{
int i;
for(i=0; i<10; i++)
{
printf("%d ",arr[i]);
}
printf("\n");
}
int main()
{
int cnt = 0;
int arr[10] = { 10, 2, 8, 22, 16, 4, 10, 6, 14, 20};
int brr[10] = {0};
int i,j;
// 当数组中的元素不全部相等
while(myequals(arr) == 0)
{
myprt(arr);
// 遍历数组
for(i=0; i<10; i++)
{
// 若糖果为奇数
if(arr[i]%2!=0)
{
// 向老师要一块糖
arr[i]+=1;
}
}
// 若拿了糖就相等就不用交换,退出
if(myequals(arr) == 1)
{
break;
}
for(i=0; i<10; i++)
{
// 拿一半出来
brr[i] = arr[i]/2;
// 一半没了
arr[i]/=2;
}
// 。。。
for(j=1; j<10; j++)
{
arr[j] += brr[j-1];
}
arr[0] += brr[9];
// 次数加一
cnt++;
}
myprt(arr);
printf("共需%d次,之后每人%d块糖",cnt,arr[0]);
return 0;
}
实验-数组-candy
最新推荐文章于 2024-09-19 12:25:05 发布