c語言高手請進,c語言 大神進

2025-01-21 16:15:05 字數 1802 閱讀 9266

1樓:

首先你的程式中if(a[0]==a[1]==a[2]==a[3]==a[4]==a[5]==a[6]==a[7]==a[8]==a[9])

這句話有問題,判斷所有人的糖果是不是一樣,不能這樣判斷,因為,a[0]==a[1]的值為0或者1,然後再去和a[2]比較,不相等,得0,0和其他比較都得0,所以永遠都不相等。

還有,你的程式思路出了問題,我幫你改了一下。

首先在迴圈中要做的是判斷現在的每個人手中的糖數相等不,如果相等,則退出,如果不相等,那麼n++,然後做其他的操作,那麼這樣的話,n的初始值就是0了。

然後要判斷陣列a中的數字是不是奇數,如果是奇數,要跟老師要乙個,再把自己糖果的一般給右邊的人。

而且根本沒必要用這麼多的陣列,乙個陣列a就夠了。

具體程式如下:

#include

int isequal(int *p,int num)

int i,flag = 1;

for(i = 0; iif(p[i] !p[i+1])

flag = 0;

break;

return flag;

int main()

int a[10]=;

int b[10],n,i,flag;

for(n=0;;)

flag = isequal( a, 10 );

if( 1 ==flag )

break;

elsen++;

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

if(1 ==a[i]%2)

a[i]++

a[i] =b[i] =a[i]/2;

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

if(0 ==i)//如果是a[0],那麼是要加上a[9]的數字。

a[i]+=b[9];

elsea[i]+=b[i-1];

printf("調整了%d次,每人分了%d塊",n,a[0]);

return 0;

執行結果:調整了17次,每人分了18塊press any key to continue

2樓:紅山人

*你看這樣寫是不是能更好明白一些,13次,每人8塊*/#include

int main()

int a[10]=;

int n=0,i;

while(1)

a[9]=(a[9]+a[0])/2;

if(!a[9]%2)

a[9]+=1;

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

a[i]=(a[i]+a[i+1])/2;

if(!a[i]%2)

a[i]+=1;

break;

printf("調整了%d次,每人分了%d塊",n,a[4]);

return 0;

c語言 大神進~

3樓:袁世平

if(!a)表示詢問!a是否為0.

a表示的是'非'的意思,所以如果a!=0那麼!a=0,如果a=0,那麼!a=1;

因為a=0,所以執行if(!a)後面的語句:x--,即x=x-1,所以x=15-1=14,然後就可以跳過後面那個else

然後詢問if(c)也是判斷c是否為0.

因為c=0,所以不執行if(c)後面的語句,而是執行else後面的語句:x+=4也就是x=x+4,這時x=14+4=18.

答案選c

4樓:操尼瑪

!a成立 x=14; if(c)不成立 執行else x+=4; 得:x=18

求大神解答c語言題目,求大神解答C語言題目

include 商不能超過最大的long型數,小數部分最後一位四捨五入太難了,希望能給你參考 void func double m,double n,double k int main func m,n,k include void func int m,int n,int k int main f...

急求c語言程式設計高手,急求C語言程式設計高手!!!

大哥,看下嚴蔚敏的資料結構,裡面全有。急!求c語言程式設計高手 50 include include string.h 在呼叫某一類庫函式時,需要在程式的開頭使用include命令包含標頭檔案 include stdlib.h void main 在沒有返回值的情況下用void而主函式的函式名必須是...

c語言問題!請高手解答!謝謝,C語言問題!請高手解答!謝謝

你分析程式,首先看main函式,輸入兩個數字 進入for迴圈,迴圈次數是你輸入兩個數字的差 進入一個判斷就是90 120之前的i是否等於 rsum i 的返回值 那麼看rsum函式 sum 0,進入while迴圈 sum sum 10 j 10 sum是0,是代表的取餘,就是除法裡的餘數,比較相近 ...