c語言實驗買糖果
『壹』 c語言編程 幼兒園的小朋友分吃一堆糖果,第一天吃了一半,又吃了一顆;
#include <stdio.h>
void main()
{
int n = 1;
int i;
int sum = 0;
for(i = 10;i >= 1;i--)
{
sum += n;
n = (n+1)*2;
}
printf("總共有糖%d顆\n",sum);
}
『貳』 c語言 每個糖果1元,三張糖果紙換一個糖果,問N元最多能買幾個糖果
一、演算法設計:
1、首先N元可以買N個糖果,同時產生N個糖紙;
2、然後每三張糖紙可以換一個糖果,同時產生一張新的糖紙;
3、以此循環下去,直到糖紙數不足3張時(不考慮可以借糖果),結束程序。
二、參考代碼:
#include<stdio.h>
intmain()
{
intN,tg,tz;
scanf("%d",&N);//輸入N值。
tg=tz=N;//初始糖果和糖紙數都是N個。
while(tz>=3)//糖紙數超過三張,還可以繼續換糖果,執行循環。
{
intt=tz/3;//t用來存儲當前糖紙可以換的糖果數。
tg+=t;//累加到糖果總數上。
tz=tz%3+t;//剩餘的糖紙數。
}
printf("%d元共可買%d個糖果 ",N,tg);//輸出結果。
return0;
}
『叄』 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
大體的思路應該就是這個樣子。
『肆』 c語言分糖果
#include<stdio.h>
#defineN20
intn;
intequal(int[]);
voidmain()
{
intnum=0,count=0,i,t1,t2;
intchild[N];
printf("請輸入小孩數:");
scanf("%d",&n);
printf("請輸入每個小孩手中的原始糖數:");
for(i=0;i<n;i++)
scanf("%d",&child[i]);
while(!equal(child))
{
for(i=0;i<n;i++)
{
if(child[i]%2!=0)
{
child[i]+=1;
num+=1;
}
}
t1=child[0];
for(i=0;i<n;i++)
{
t2=child[(i+1)%n];
child[(i+1)%n]/=2;
child[(i+1)%n]+=t1/2;
t1=t2;
}
count+=1;
for(i=0;i<n;i++)
printf("%d",child[i]);
printf(" ");
}
printf("經過%d次交換後糖數相 調整過程中新發%d顆糖 糖數是%d顆 ",count,num,child[1]);
}
intequal(intchild[])
{
inti;
for(i=1;i<n;i++)
if(child[i]!=child[i-1])
return0;
return1;
}
不少問題,改了一下,樓主看看。加了一個每次分完後的結果輸出。
『伍』 C語言求助:十個小孩圍成一圈分糖果問題
在編程領域,C語言的應用廣泛。本文探討了十個小孩圍成一圈分糖果的問題。假設每個小孩開始時手中有不同的糖果數量,我們的目標是找到一個方法,使得每個小孩手中的糖果數量最終相等。為此,我們設計了一個函數,利用數組來表示每個小孩手中的糖果數量。通過一系列操作,我們能夠實現糖果的重新分配。
具體來說,我們定義了一個名為fx的函數,接受一個整數數組作為參數。在函數內部,首先創建了一個輔助數組b來存儲中間結果。接下來,我們通過循環逐步進行糖果的重新分配。在每一次循環中,首先進行奇數補充動作,即將每個小孩手中的糖果數量為奇數的情況進行處理。隨後,我們按照規則進行糖果的分配,將糖果平均分給每個小孩。之後,我們需要對數組進行調整,以確保分配的公平性。最後,通過判斷數組中相鄰元素是否相等來確定是否滿足條件。
為了驗證該函數的有效性,我們編寫了一個主函數main。在這個函數中,我們定義了一個初始狀態下的糖果數組a,表示十個小孩手中的糖果數量。調用fx函數後,將返回值保存在變數cnt中,表示實現分配所需的次數。在最後的輸出語句中,我們使用printf函數展示了所需的分配次數以及最終每個小孩手中的糖果數量。
通過上述代碼,我們能夠清晰地看到如何利用C語言實現糖果的重新分配。這種方法不僅能夠解決實際問題,還能幫助我們理解循環、數組和條件判斷等C語言的基本概念。
值得注意的是,這個函數的設計基於一定的假設條件,例如初始糖果數量的分配是隨機的,且每個小孩手中的糖果數量必須最終相等。在實際應用中,可能需要根據具體情況進行適當的調整。
總結來說,通過這個例子,我們不僅學會了如何使用C語言解決實際問題,還加深了對編程邏輯的理解。希望讀者能夠通過這個例子,提高自己的編程技能。
『陸』 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語言編程 吃糖果的問題 難!!!!
只有在T組糖果中,當任意的某一種糖果的數量 - 剩餘T-1種糖果的數量之和 ≥ 2的情況下,才不可能吃完。其他任何情況下都可以吃完。
證明: 設糖果有T種, 每一種有X1,X2,X3,......XT 個。
步驟一: 取X1,X2,X3........XT 中最小值Xmin。(即標准地每種吃一個,直到把最少的那一組吃完)
那麼接下來剩餘的糖果種類為T - 1。每一種有X1-Xmin1,X2-Xmin1,X3-Xmin1.......XT-Xmin1 個
步驟二:在剩餘的T-1種糖果中,找出數量最少的。(即X1-Xmin,X2-Xmin.......XT-Xmin中最少的)
那麼剩餘的糖果種類為T-2,每一種有X1-Xmin1-Xmin2,X2-Xmin1-Xmin2.......XT-Xmin1-Xmin2個
重復以上步驟直到最後只剩一種糖果,這個糖果的數量為,Xmax - Xmin1- Xmin2 - Xmin3 ....- Xmin(T-1)
當這個糖果的數量為0的情況下,就可以吃完。不為0的情況下就不可以吃完。
考慮最差情況,即每一次只吃最多的一種糖果和最少的一種糖果。(每次吃2種,其他糖果不吃)
那麼最後剩餘糖果的數量為 Xmax - X1-X2 -X3 ....-XT
當這個值為1時 則可以吃完。大於1時 則吃不完。
接下來編程就非常容易了。
遍歷一遍T組糖果中每種糖果的數量,然後算一下就行了。