求助c語言,求助,C語言問題

2023-03-22 12:35:02 字數 4212 閱讀 2981

1樓:我是比丘猴

修改了一下,如下:

int main()

但是"1<=x<10"這種寫法並沒有出現編譯錯誤。因為程式理解成,"1<=x",1跟x比較,只要1<=x,則輸出"1"(代表正確的意思),然後這個"1"又和後面的"10"進行"<"比較,因此也是正確的,即1,所以就會執行後面的語句y=2*x-1,導致輸出的答案不正確。

2樓:匿名使用者

你好,問題在if(1<=x<10),你想表達的意思是x>=1且x<10,那麼應該寫成if(x >=1&& x < 10)

現在這種寫法因為關係運算子< 《優先順序一樣。當x<1時前面if(x<1)成立,不判定(1<=x<10),但x<1不成立時,if(1<=x>10)中條件判定先判定1<=x, 無論x是多少,判定結果只能是1(true)或者0(false),再判定(1<=x) <10, 即1<10,或者0<10,顯然恒為真。所以錯誤就出在這裡了。

應該改成else if(x >=1&& x < 10)

3樓:樂圖圖

程式中沒有包含x>10時程式該如何執行,所以會出錯。

4樓:fei仰角30度

改成這個:int main()

這裡if(1<=x<10)的判斷只做了1<=x的判斷,應該改為與邏輯的 if(1<=x &&x<10),好好想想,有不懂的追問。

5樓:網友

if(1<=x<10) 這樣計算機不懂什麼意思的。

這句要是if(1<=x&&x<10) &是並且的意思。

求助,c語言問題

6樓:鹹魚君的學習館

請把題目資料貼完整。比如隨機的這六個數字的範圍是多少。以及彩票中獎號碼會不會重複這些。

假設數字範圍是1~10 且號碼要求不重複。那麼**如下。若範圍不一致請自行修改。

**截圖。執行截圖。

手打不易,望採納~

c語言求助

c語言 求助 20

7樓:自我程式設計

方法很多,最直接的方法是,在函式中定義乙個臨時陣列,然後2次迴圈,先將n往後的值存入新陣列,再將n之前的值存入陣列。最後把臨時陣列的值全部賦值給原陣列。

#include

void move(int arr,int len,int n);

int main()

int i,arr[5]=,n;

printf("請輸入n的值:")scanf("%d",&n);

move(arr,5,n);

printf("陣列變為:")

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

printf("%d ",arr[i]);

return 0;

void move(int arr,int len,int n)int i,j,atemp[len];

if(n>=len)

printf("n值過大,陣列訪問越界!")

elsefor(i=n,j=0;iatemp[j]=arr[i];

for(i=0;iatemp[j]=arr[i];

for(i=0;iarr[i]=atemp[i];

8樓:網友

該題c**如下:

#include

void move(int arr,int len,int n)}int main()

;move(a,5,2);

//顯示執行結果。

for(i=0;i<5;i++)printf("%d ",a[i]);

return 0;

}如果是oj判分答題,需稍做修改,可追問。

9樓:我呀

#include

void move(int arr,int len,int n);

int main(),n;printf("請輸入n的值:")scanf("%d",&n);

move(arr,5,n);

printf("陣列變為:")

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

printf("%d ",arr[i]);

return 0;

}void move(int arr,int len,int n)for(i=0;iarr[i]=atemp[i];}

c語言 求幫助

10樓:匿名使用者

4、不知道,估計是答案錯了,因為實際執行結果也是b11、18、21一起。

auto 是區域性變數預設,宣告有效期在區域性變數範圍內extern 表示變數或函式在其它cpp檔案中定義,這裡只是使用static 最主要功能是隱藏(僅對本cpp可見),其次因為static變數存放在靜態儲存區,所以它具備永續性和預設值0。

register 已無效,在原來計算機中可以把變數放到暫存器而不是記憶體中。

14b 因為用括號括起來了,所以只有括號中最右邊的有效17b 標準庫不用重定義但必須包含,函式都是可以重定義的。

22a c語言的函式呼叫都是值傳遞,也就是說函式操作的是實參的副本,所以只能把實參的值傳送給形參,形參的值不能傳送實參,函式不能巢狀定義,不必須有返回值,可以不在乙個檔案中,只要宣告有這個函式存在就可以呼叫。

求助乙個c語言問題?

11樓:考驕

你在看看,還是不對,全1表示的是-1,1000...才表示-128

反碼概念,符號位不變,其他位取反(+1),全1反過來就全0,表示0的話就2個0了,所以負數在加個1

只有反碼才這樣。

12樓:金半田

二進位制11111111代表-127,是按原碼規則來算。若按補碼規則,二進位制11111111算出來是-1。

文中說的是10000000代表-128。

詳細描述如下:

[+1] =00000001]原 = 00000001]反 = 00000001]補。

[-1] =10000001]原 = 11111110]反 = 11111111]補。

計算機將第1位作為符號位,0表示正數,1表示負數。

原碼:原碼很好理解,第1位是符號位,其餘位表示數值。

反碼:(1)正數:正數反碼是其本身。

(2)負數:去掉原碼符號位,其餘位按位取反。

補碼:(1)正數:正數補碼是其本身。

(2)負數:在反碼基礎上加1。

由上述定義可知:

[+0] =00000000]原 = 00000000]反 = 00000000]補。

[-0] =10000000]原 = 11111111]反 = 00000000]補。

既然+0和-0的補碼一致,所以只需保留乙個(+0和-0原碼不同,注意看符號位)。

這樣一來,「[0] =10000000]原」相當於沒有使用,於是規定:「[10000000]」為-128。

既然是「規定」,就不能按原碼、反碼、補碼的規則計算了。設計計算機時就在硬體中設定為:10000000代表-128。

之所以引入補碼,是為了消除減法,用加負數來替代減法運算,這樣讓cpu設計更簡單。

13樓:自我程式設計

這裡說的是補碼,不是二進位制負數。

二進位制負數10000001到11111111表示-1到-127,而10000000表示的就是最小負數-128。

而負數在計算機中是以補碼儲存的。

負數->(原碼按位取反)反碼->補碼(反碼+1)。所以-1到-127的補碼就變成11111111到10000001。而0的原碼補碼還是0,-128的補碼是10000000。

所以如上題說的,-128~-1計時10000000~11111111。

14樓:

負數的補碼等於反碼+1

15樓:沙里波特

二進位制11111111不是代表-127嗎?

--是的。 11111111 是-127的原碼。

為什麼是-128 呢?

--誰說的? 騙你的。

請教c語言的問題

16樓:紀景明枚書

既然sum_power(n,k)=pow(n,k)+sum_power(n-1,k)

你至少要定義sum_power(0,k)及sum_power(1,k)兩個初值。

另外你的k是什麼?好象沒有意義喲。

C語言求助C語言問題,求助

1 c 求模運算的結果是餘數,參與運算的兩個運算元都必須為整型的。2 c x字元陣列存放的是字串,系統自動在其後加 0 作為結束標誌,故長度為字元 串中字元個數 1,而y字元陣列存放的是幾個字元,長度為其中字元的個數。3 c。語言中引數傳遞,只能進行單向的從實參到形參的傳遞。4 d。逗號運算是從左向...

c語言問題,求助,C語言問題,求助!!!

這種問題用哈夫曼樹的逆向思想就可以解決了,所以我建議還是自己按這思想好好研究一下。自食其力。c語言問題 因為 define s a p a a 定義後 是直接替換 運算過程是這樣的 3 3 5 3 5 所以是29 弱勢這樣定義的 p a a 結果就是192 3 3 5 3 5 9 15 5 29 巨...

c語言問題,求助,C語言問題,求助!!

include int flower int num int main include int flower int num int main t 0 for i m i n i if t printf no n else printf n return 0 先回答你第一個問題,遞迴函式確實是讓ch...