1樓:回一句晚安
一、表示式1?表示式2:表示式;是乙個三目運算子,運算順序是先計算表示式1,若它的值為非0(真),將表示式2的值作為條件表示式的值;否則把表示式3的值作為條件表示式的值。你題目中
sign=(s[i]=="-")?-1:1; 的意思是若s[i]等於-,則sign=-1,否則sign=1;
二、這是建立結構指標的一種方法(漏了s吧,是struct),直接寫在後面,當然也可以struct node *first,*last,*p;
三、*first=pnode是調整*first所指向的位置,從指向原先的首位置改為指向插入的節點所在位置。
2樓:
第乙個問題: sigh=(s[i]=="-")?-1:1 是個判斷語句 當s[i]=="-" sigh=1 如果不等於 去-1
第二個問題: 是結構指標 而且你打錯了, 是struct node 不是ctruct node
第三個問題: 第一句只是說 pnode的下一位是*乙個叫first的指標,而沒有把pnode與鍊錶鏈結起來
第二句就是把pnode連線到鍊錶上
關於c語言的幾個問題?
3樓:
char str[10]=,占用記憶體10個位元組,前6個位元組的值是"abcde\0",字串不一定占用全部字元陣列的記憶體,因此最後會加'\0'(0值)表示字串的實際結尾。該字串實際佔據陣列的前6個單元;
char str={「abcde」},會自動根據字串長度確定占用記憶體的大小,為6個位元組。
用strlen()函式去檢視,結果都是5。
整數相除,餘數捨去,只有整數部分。
同型別運算,從左至右順次進行。
x/y=3/2=1,x/y/z=1/1=1,取整之後,還是1,化成浮點數之後是1.000000.
如果想得到小數結果,有兩種做法:
(1)在運算之前,先強制型別轉換:(float x)/(float y)/(float z);
(2)運算的第乙個數是浮點數:1.0*x/y/z;
運算時會自動選定第乙個數的格式,進行計算。
關於c語言幾個程式的問題
4樓:匿名使用者
第乙個程式(修改兩處):
#include
void main()
int qh(int x,int y)
第二個程式(修改4處):
#include
#include
void main()
else if(d>0) /*注意這裡*/
else
5樓:匿名使用者
第乙個 下面幾行格式控制有誤:
scanf("%f",&l); //輸入變數
printf("請輸入出發時間,格式為 時,分,秒\n"); //顯示輸入變數
輸入變數
printf("請輸入到達時間,格式為 時,分,秒\n"); //顯示輸入變數
輸入變數
無輸出函式 printf("平均速度=%f",&v);
自定義函式中 else z=(x-y)*3600; 應為 else z=(y-x)*3600;
建議h,h也定義成實型。並加入判定hh是否小於24大於0,mms1s2是否小於60大於0的y語句。
第二個 第二個if處缺少 x2=((-b)-sqrt(d))/(2*a);
第二個if前加else,後乙個else語句不用加花括號。應該是if(d==0);
6樓:陳
1. scanf("%f",&l); //輸入變數
2. if(d==0) /*是==,不是=*/
就上面兩個地方粗心了,程式寫的不錯
7樓:永恆心愛
if(d=0)
else if(d>0)
else }
少了個 else
c語言的幾個問題
8樓:匿名使用者
1.其實「4.3」中的「4」是有用處的,「4」代表輸出數字的寬度設定,但如果你輸出數字的寬度大於你所設定的數字寬度「4」,則數字全
部輸出,如果你輸出的數字的寬度小於你所設定的數字寬度「4」,則用空格填滿。
比如printf(「*%f,%8.3f*\n」,3.14,3.1415);
則輸出:*3.140000,---3.142*(-表示空格)[「8」正的是右對齊,負的是左對齊]
2.我後面輸出的是*d(4)=37777777776*d(5)=37777777776*d(6)=37777777776*
如果輸出的是177776的話,你的答案應該對的,應該輸出*d(4)=177776*d(5)= 177776*d(6)=177776 *;
3.我輸出的結果是
*d(1)=3.500000e+000*d(2)=3.5000e+000*d(3)=3.5000e+000*
*d(4)=-3.500000e+000*d(5)=-3.500000e+000*d(6)=-3.50000e+000*
d(3)%10.4e的「10」是指數字寬度,「4」指小數點後面四位;
4.你的意思是說把改成嗎?
那結果會輸出 x=1 x=2 x=3
10 squared is: 100
5.我輸出的結果是:5.681000e+002
e型的小數保留6位 ,指數部分保留3位
6.#include
main()
解析:printf(「##%*d\n」,i,i);中的第乙個 i是設定輸出數字的寬度,第二個i是輸出的數字;
號的作用是【可以使同一輸出語句中的輸出寬度得以改變】
for迴圈內,每次迴圈先輸出##然後設定要輸出的數字寬度,再輸出數字,因為你的寬度i是正的,所以輸出數字是右對齊。
7.很奇怪,你的輸出結果怎麼和我的不一樣呢,我輸出的就是
3.1415926000##
3.1415926000 ##
你自己再試試看~
8.你好,我輸出的結果是:a=+00325(中間1個空格)x=+3.141593e+000
a=+00325因為你輸出設定的寬度為6,其中「+」也算在其中的;而x=+3.141593e+000在上面第四題已解釋
9.我輸出的答案基本和你所猜想的一致,是
(1) x=7281,x= 7281,x= 16161,x= 1c71,x= 7281
(3) x=+7281,x= +7281,x=+0007281
只有(3)有點不一樣,自己再檢查檢查吧,問題跟上面的都差不多,我想你應該能夠解決的!
希望我的答案能讓你滿意!謝謝~
9樓:股海小堅果
怎麼還沒人回答,我時間少了些,不染到幫你下,還有你題目有點不 明白
關於c語言的兩個問題
10樓:匿名使用者
1巨集定義,可以理解為複製貼上,就是在編譯的時候簡單替換,用struct address_list替換所有nod出現的地方
2這個在結構體共用體或者類中用到,指示結構體下面的子項
11樓:鬼扯石室
1、通過巨集定義語句#define nod struct address_list
在下文中用nod代表結構體address_list2、->是間接引用符
temp應該是乙個指向結構體的指標
next是此結構體中的乙個成員變數
temp->next就是用指標temp呼叫結構體中的next變數temp->next=p就是將p的值賦給結構體物件中的next變數
12樓:聶振華東羅
一、用for也可以;也可以不用break;
intarea=0;
intr=1;
floatpi=
3.14;
for(r;
r<=10;r
++)二、如下:
for(inti=
1; ;
i++)
巢狀結構,遇到break,跳出其邏輯上的迴圈結構也就是裡面的for迴圈,然後繼續執行外面的for。}
關於c語言的乙個問題
13樓:
你不覺得你每個for迴圈中都加上;i<=max-1||i 14樓:匿名使用者 燙說明少了字串結束標識'\0' c語言的幾個問題 15樓:匿名使用者 估計你是弄混了 1.在定義的時候 *+指標變數= 乙個指標變數。char *p; p就是 乙個指標變數,指向型別為char. 在用的時候 *+指標變數= 乙個數值。準確的說是把該指標指向的值取出來。比如: int *p; int d=2; int a; p=&d; a=*p; 2.關於int (*p)() 定義乙個指標p,指向乙個引數為void,返回型別為int的函式舉個例子: int fun1() int fun2() int main() 3.for(;x=3;) 你要知道for迴圈的過程 1)初始化,就是第乙個分號之前語句的作用 2)條件判斷,就是第二個分號之前語句的作用3)迴圈之前要做的工作,就是第二個分號之後語句的作用for(;x=3;):沒有初始化,x=3條件是真,沒有迴圈之前要做的工作。 所以是死迴圈。 16樓:匿名使用者 指標就是位址值,掌握這一點就ok,你看的啥書呀,搞那麼多亂七八糟的概念,誤導呀! int (*p)()比如有乙個函式定義 int fun() 那對p操作時就可以這樣p=fun,就是取函式的入口位址。 呼叫時就可以(*p)()或是fun(),兩者等價。 for( ;x=3 ; );for的中間是限制條件,只要條件成立for就會一直執行,這句實際上是給x賦值3,然後判斷這個表示式的真假,因為3是非0 ,為真,這是個死迴圈 17樓: 1『、關於指標 剛開始學習第一章的時候,書本寫道:*+指標變數 = 乙個數值但是越學越後的時候就變成: *+指標變數= 乙個指標變數這倒是怎麼回事,我弄混了還是? ===> 記住一點,不管=號右邊是什麼,指標變數最後的內容都是乙個記憶體位址2、關於int(*p)( ) 這種指標函式我很不理解,請問你可以幫幫忙列乙個例子嗎?書本都沒介紹===》 要仔細看看書,函式指標作為引數時,這個情況就很常見了(例如**函式)3、關於for迴圈 for( ;x=3 ; );代表的意義是? ===》 x==3的時候迴圈結束 但是你寫的x=3 這個迴圈就不會停止,進入死迴圈狀態,弄清楚"="與"=="的區別 呵呵,粗心了哦 62616964757a686964616fe58685e5aeb931333238646331 for i 1 i,直到字串尾的。你的 中從i 1開始給字元陣列賦值,就導致第0個字元一直沒有被賦值,並且由於 char line 1000 陣列沒有進行初始化,所以line 0 中就是... char buff 5 這樣寫賦初值,雖說沒有給buff 1 buff 4 賦值,但是預設是賦值0的,這樣寫沒問題。很多教材上都有的。char buff 10 是可以把這個陣列的所有元素的賦值成0的。不信你用下面的 測試一下。include void main int i for i 0 i 4 i... slist是你定義的結構體的名稱,你寫的動態記憶體分配,意思是申請乙個指向slist的slist記憶體空間的指標,沒有這個名稱,就相當於乙個人沒了名字,幹什麼都不方便 slist就是nde的別名 因為你用到關鍵字typedef typedef是給型別取別名之意 如 typedef unsigned ...C語言錯誤,關於C語言程式的問題
c語言關於陣列賦初值的問題,C語言關於陣列賦初值的問題char buff
關於c語言鍊錶的問題,關於C語言鍊錶的問題