c語言中的一些問題,C語言中的一些問題

時間 2022-10-16 04:25:09

1樓:

/*你的所有問題都在這個小程式中解決*/

#include

#include

int strleng(char* s) /*該函式計算字串的長度*/

int ctoi(char c) /*該函式將數字字元轉換成數值*/

int isprn(int n) /*該函式判斷一個數是不是素數*/

for(i=2;i<=sqrt((double)n);i++)

return 1;

}int main()

n1=10*ctoi(nstr[i])+ctoi(nstr[i+1]);

n2=10*ctoi(nstr[i+1])+ctoi(nstr[i]);

if(isprn(n1)&&isprn(n2))

}printf("\n");

}if(f==0)

printf("no\n");

return 0;

}請輸入一個數字字串(空格或回車結束):1231771342

該字串長度為10 每個數字為:

1 2 3 1 7 7 1 3 4 2

這個數字字串中的完美素數為:31 17 71 13

請按任意鍵繼續. . .

2樓:匿名使用者

1答:用charat()可以提取字串的每一個字元,用這個字元送去『0』,再轉化為整數就可以將這個字元變為數字,例如『9』,int a='9'-'0';

2答:字串是以\0結束的

3答:先分離個位跟十位,新的數就是「個位*10+十位數」,判斷這個數是不是素數就可以了!

c語言中的一些問題

3樓:匿名使用者

3全部沒錯誤,見圖:

4樓:匿名使用者

下面說的對,scanf("%d,%d", &a, &a); 中輸入時要按格式輸入,即a b要以

1500,350 這樣輸入!(你可以scanf("%d%d",&a,&b)就可以不用逗號)

執行結果 商是4,餘數是100

5樓:匿名使用者

scanf("%d,%d", &a,&b);

輸入格式要與scanf的一致。

6樓:

scanf("%d,%d", &a, &a);

c語言中的一些問題啊

7樓:

看的不是蠻清楚

程式,你自己對下

#include

#include

int main()

8樓:

主函式main後面少了個(),scanf後面「%d」 ,想打漢字要用text(),如text(「你好」)。

9樓:匿名使用者

scanf("%d", &number1); //不是分號,是雙引號啦。

10樓:

這個工具。。。太古老了,你居然能找到。

11樓:匿名使用者

scanf("%d",&number);

c語言中的運算子的一些問題!

12樓:

先執行加加x;x=1;然後後面不需要計算關係運算子會採取短路求值,加加y和加加z沒有執行!關係表示式兩端的執行順序是先左後右,如果左邊可以確定表示式的值,關係運算子右邊的表示式,不再執行,這就是c,cxx最有名的短路求值!

13樓:匿名使用者

這是編譯器的短路優化法則。

這裡不需要看++,要看最外面的兩個邏輯或。

編譯器掃描**的時候是從左往右的,遇見可以優化的**就會在編譯前進行優化。

上題中,只要遇見一個滿足||為真的表示式就不會繼續去做之後的運算。

++的優先順序高於||,所以先計算++x,判斷為真了。||後邊的**不會再進行計算。

所以只有x自增了,y和z的值不變。

14樓:

||是或判斷,或就是一真俱真。

所以對編譯器來說,他從左到右判斷,只要發現了一個真就可以證明整個算式是真,不用判斷後面的了。

所以對於你的這個問題,首先判斷++x

因為++在左邊,所以先運算在判斷,

++x=1 所以是真

所以後面的就不用執行了,

所以結果是1 0 0

至於運算子的優先順序,不用深究,用著用著就明白了。

15樓:月弒

|| :或運算:一種判斷運算,目標是獲得結果(真或假),只要遇到真,則此句後面關聯語句都不再執行,這是c裡預設的,這裡的真假,簡單說來就是非零為真,顯然++x非零(比如,if 1 這是真;而if 0 這就是假,後續不執行if 主體句),故為真,後面的++y,++z將預設不在執行判斷,因為結果已經出來了(真),而你說的優先順序的確是那樣,但應該這樣看 ++x||他們在一起,進行優先順序判斷,自然先++x再||,而||為雙目運算子號,前面一個為真就不用執行後面物件的運算了。

小弟也是課上道聽途說的,不足的請勿怪,身為大一的孩子都有點打醬油的,你懂得,呵呵。

16樓:hao大豬

先把++x,++y,++z全部執行後在與||運算。

關於c語言中的一些問題

17樓:匿名使用者

直接 k 不可能 = 『55』,可以等於『5』

你是想把轉化成字串吧

char k[128];

sprintf(k,"%d",i)

就可以了。

k 就是 "55"

18樓:塵封夢想

int i=55 ;

char k=char(i);

19樓:資訊化建設的搬磚工

(char)i

這是強制將i 轉換成char 型別

20樓:

char k='55'; 是有問題的,字元只能單引號裡用單字元。兩個'5' ,是字串;如果要將int型別的55轉換為字串,應該為:

#include "stdio.h"

int main()

21樓:走出憧憬

對於int到 char的轉換可以直接賦值也可以用 k=(char)i來轉換,但是先你說的char k='55',這個在c語言中是沒有的,它的值就是『5』一樣,因為ascii裡面數字符號只有『0』到『9』,對應的ascii為48到57,也就是說將int型的i轉換為char後並不是55 而是7(55是7的ascii碼),55轉換為字元k=『55』是沒有意義的。

22樓:匿名使用者

你的題都有錯!

數字轉字串可以用itoa()函式

C語言中的問題,幾個C語言中的問題???

將憶梅僑寶 getchar和putchar是c語言中的函式 getchar從鍵盤讀入字元 putchar在螢幕上顯示字元 吳幼珊佘溶 getchar和putchar是c語言中的函式,叫作標準字元輸入輸出函式,這裡的標準表示輸入是從標準裝置輸入的,即鍵盤,輸出是從標準裝置輸出的,即顯示器。這兩個函式包...

請教c語言中的問題,請教一個c語言中的問題?

不對int n n 意思是定義了一個指標變數n指向int型 n 等價於 n 就是先取n指向變數的值 然後讓n 1 n也就是讓n指向下一地址 而且這樣用必須先給n賦一個安全的地址才行 對啊,你用 幹什麼,有不是指標.就是 號自增 資深癩 int n n 或者int n n 以上都行 兩個的區別是 n ...

c 語言問題?在c語言中的問題?

c 語言是c語言發展起來的,所以繼承了c語言幾乎所有的特點,但c 語言又有自己的個性。c語言是一種程序導向的程式語言,而c 主要是程序導向的,因此c 有類的概念,而c語言就沒有。c 的功能強大,編譯器複雜,適合高階程式的設計和,c語言的編譯器簡易,適合低端程式。邏輯混亂,參考正常的實現吧。c語言的基...