A. c语言:老师给十个小孩分发糖果,第一个和第二个小孩各分一块糖
#include;#include;float;GetSweets(int;seqNum){;;;;if(seqNum;
B. c语言编程,10个小朋友围成一圈分糖果。
#include<stdio.h>
voidrerange(intx[])
{
inttemp=x[0]/2,l,m;
l=temp;
for(inti=1;i<10;i++)
{
m=x[i]/2;
x[i]=m+temp;
temp=m;
}
x[0]=temp+l;
for(inti=0;i<10;i++)
{
printf("%d",x[i]);
if(x[i]%2)
{
x[i]+=1;
}
}
printf(" ");
}
intmain()
{
inta[10]={12,2,8,22,16,4,10,6,14,20};
intn=5;
for(inti=0;i<n;i++)
{
printf("第%d次调整: ",i+1);
rerange(a);
}
return0;
}//解决请采纳
C. C语言 10人分糖
所有小孩同时把自己的糖果分一半给右边的小孩。注意这里是同时,并不是第一个小孩把糖给第二个小孩以后,第二个小孩再把他现有糖的一半给下一个小孩。
#include<stdio.h>
intmain()
{
intA[]={12,2,8,22,16,4,10,6,14,20},
N=sizeof(A)/sizeof(int),
steps;
inti,prev,temp;
for(steps=0;;steps++)
{
//判断是否全部相等
for(i=1;i<N;i++)
if(A[i]!=A[0])break;
if(i==N)break;
//模拟
prev=A[N-1]/2;//记录前一个小孩糖数的一半
for(i=0;i<N;i++)
{
temp=A[i]/2;
A[i]=temp+prev;
A[i]+=A[i]&1;
prev=temp;
}
}
printf("Value:%d Steps:%d",A[0],steps);
}
//Output
Value:18
Steps:16
D. :[蓝桥杯][2014年第五届真题]分糖果c语言
过不了显示是什么意思?编译错误?
E. c语言编程:分糖果
都已经回复过了,怎么还在重复发贴啊~~
#include<stdio.h>
int
equal(int
child[])//判断每个小孩手上的糖是否相等
{
int
i;
for(i=1;i<10;i++)
if(child[i]!=child[i-1])
return
1;
return
0;
}
void
main()
{
int
child[10]={10,2,8,22,16,4,10,6,14,20};
int
i,
tmp0,
tmp,
sum=0,
count=1;
while(equal(child))
{
tmp0=
child[0];
for(i=1;i<10;i++)
{//循环分糖
if(child[i]%2)
child[i]++;
tmp
=
child[i];
child[i-1]=child[i-1]/2+tmp/2;//分糖后
}
if(tmp0%2)
tmp0++;
child[9]=child[9]/2+tmp0/2;
count++;
}
printf("经过%d次后,大家手上都有%d块糖.\n",
count,
child[0]);
}
F. C语言分糖果,1处应该填什么
count //来做计数的。
但是这样写得话,估计编译器会报错,因为是通过i=10,来做停止循环的关键数。因为如果全部相等,会做完全部循环,不然就会break.
G. C语言编程题:分糖果,如图。没有思路T^T ,求大神
只有一个简单的思路,一起讨论一下:
第1个小孩给他一个(谁让他抢在前面呢:)
后面的小孩依次按规矩来,看应该给几个,可爱值高呢,就加一块,否则就减一块。
如果发现减到零了,那就倒回去,前面的人补一块。当然,不是全部补,只要补发到可爱值较高的地方就可以了。实际只需要计算一个总数,所以可以预先算好,直接加到总数中就行了。
开始时,第1个小孩1块糖,待补发的数量=0
第2个小孩先给2块糖,由于可爱值开始变高,待补发的数量=1
每3个小孩先给1块糖,由于可爱值变低,待补发的数量+1。
第4个小孩可爱值变低,待补发总数+1,照说应该给0块糖,当然不行,补发一块,前面的也都补一块,补3块。这个待补发数量还不能归零。当前第4个小孩的糖数应该修正成1。
第5个小孩给2块糖,由于可爱值开始变高,补发数量归零=1。
1+2+1+0+(3)+2=9
大体的思路应该就是这个样子。
H. c语言出错分糖果
#include<stdio.h>
void print(int s[]);
int judge(int c[]);
int j=0;
main()
{
int sweet[10]={10,2,8,22,16,4,10,6,14,20};
int i,t[10],l;
printf("child 1 2 3 4 5 6 7 8 9 10 ");
printf("............................................ ");
printf("time ");
print(sweet);
while(judge(sweet))
{
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;
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;
return 0;
}
void print(int s[])
{
int k;
printf(" %2d ",j++);
for(k=0;k<10;k++)
printf("%4d",s[k]);
printf(" ");
}