Ⅰ c語言簡單的增量運算問題
main()
{
int a,b,c,d;
a=2;
b=(++a)*5 ; //(先自增,再運算;a=a+1=3,b=(a+1)*5=15)
c=(a++)*5; //(先運算,再自增;c=(a)*5=15,a=a+1=4)
d=b+c; //d=15+15=30;
printf("%d+%d=%d",b,c,d);//懂否?
getch();
}
Ⅱ c語言增量運算符的使用。
你的初始賦值i=1,
執行「while(i++<30)」這句時i=1;
但是這句執行結束後,通過「i++」 可得i=2,接著再執行下面的語句,也就是「n = 1.0/i;」 這句
也就是說當執行「n = 1.0/i;」 的時候i已經等於2了。
你可以將i的初始值賦值為0.
或者這么改一下
while(i<30)
{
n = 1.0/i;
printf("%f\n",n);
i++;
}
Ⅲ 關於C語言增量符號使用2
第一條、關於自增自減運算,很多書籍沒有把問題講清楚,在C語言里是這樣的:
1.後置運算:k++表示先運算,後自加。
意思是遇到k++了,我先把當前的k的值拿來參加運算,後面再去管它的自加。
那麼,【「後面」後到什麼程度呢?要後到當前的語句執行完,即遇到分號;表示
語句執行完了,所以k才自加1。】
2.前置運算:++k表示先自加,後運算
這個意思就是遇到++k了,先把k的值加了1,再往後執行別的。
掌握好這兩點,k--和--k也是一樣的道理。
但是我不明白的是,m+=(j++)+(++j)+(j++)的結果是m=11。而m= m+ (j++)+(++j)+(j++);的結果是m=10。
Ⅳ 關於C語言增量符號使用
這個問題雖小,但是學問挺大!!!@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@
【第一條】、關於自增自減運算,很多書籍沒有把問題講清楚,在C語言里是這樣的:
1.後置運算:k++表示先運算,後自加。
意思是遇到k++了,我先把當前的k的值拿來參加運算,後面再去管它的自加。
那麼,【「後面」後到什麼程度呢?要後到當前的語句執行完,即遇到分號;表示
語句執行完了,所以k才自加1。】
2.前置運算:++k表示先自加,後運算
這個意思就是遇到++k了,先把k的值加了1,再往後執行別的。
掌握好這兩點,k--和--k也是一樣的道理。
【第二條】、對於多個自增自減運算組合時,在不同的編譯器上運行時會有不同的結果。
但是在C語言里的組合順序如gaozhen所說[「對於++ ,-- C編譯系統在處理時盡可能多的(
自左往右)將若干個字元組成一個運算符」]。
結合這兩點,我們就可以來解決這個問題了。
首先,根據【第二條】,結合順序是a=a+++b+++c;等價於a=(a++)+(b++)+c;
其次,根據【第一條】,【「後面」後到什麼程度呢?要後到當前的語句執行完,即遇到
分號;表示 語句執行完了,所以k才自加1。】
那麼,就可以得到結果了。
先是不管自加的事情,取a、b的當前值(都是1)和c(值為1)相加賦給a,即a=1+1+1=3;
然後遇到分號語句結束時再去管自加1,即a+1,b+1。而a的當前值已經是3了,故
a=a+1=4;b的當前值是1,故b=b+1=2;
所以本題答案的正確結果是 4.
Ⅳ c語言怎樣使循環語句每次+2循環
#include<stdio.h>
doublehuatoce(doublehua);
intmain()
{
//printf("Helloworld ");
inti;
for(i=0;i<100;i+=2)
{
printf("溫度:%lf ",huatoce(i));
}
return(0);
}
doublehuatoce(doublehua)
{
return5*(hua-32)/9;
}
Ⅵ C語言練習題 怎麼自增++c顯示為2呢
你這個和++符號關系不大,是你寫if-else語句有問題,你最後一個else匹配的if是if(b<0) c=0;這一句,也就是說當a小於b的時候直接輸出c的值。你試試看把a的值設置的大於b的值。就能得到3了。祝學習愉快
Ⅶ c語言程序設計問題,在線等,急
三個辦法都可以實現,但結束控制都有問題——控制變數增量都是2,怎麼能保證最後一個[]中的值恰好是結束符'\0'?所以求出字元串長度,當[]中的值>=元素'\0'的下標時結束是比較可靠的辦法。
Ⅷ C語言編程中for語句中如何表示值增加2
for語句的格式如下:
for(表達式1,表達式2,表達式3)
{
循環語句
}
可以通過表達式3來表示值增加2,如:
inti,a=0;
for(i=0;i<5;i=i+2)//通過表達式3,即i=i+2來表示值增2
{
a=a+i;
}
//程序執行完後,a的值為6(即0+2+4=6)
可以用下面的方式來實現:
inti,a=0;
for(i=0;i<5;)//表達式3為空
{
a=a+i;
i=i+2;//通過語句i=i+2來表示值增2
}
//程序執行完後,a的值為6(即0+2+4=6),與上面的結果一樣。
Ⅸ c語言讓一個變數循環加2怎麼寫
前略
int v;//v是變數
scanf("%d",&v);
int n;//n是次數
for(int i=1;i<=n;i++)
v+=2;
Ⅹ c語言怎麼把*元素每行遞增2個*元素輸出
樓主是要輸出由"*"組成的一個金字塔型吧。即輸入 3 就顯示:
*
***
*****
的結果吧。
如下程序在VC6.0的運行成功,並有一定糾錯能力,即你輸入了負數則要求重新輸入
#include<stdio.h>
void main()
{
int input = 0;
int i = 0;
//輸入你要顯示的行數
printf("please input a number of row:\n");
scanf("%d",&input);
while(input <= 0)
{
//輸入的值不合要求,重新輸入
printf("input error!!\n");
printf("please input a number of row:\n");
scanf("%d",&input);
}
for(i = 1; i <= input; i++)
{
int j;
for(j = 0; j < input-i; j++)
{
printf(" "); //輸入*前的空格
}
for(j = 0; j < i*2-1; j++)
{
printf("*"); //輸出每行的*元素,個數隨行數增加而增加
}
printf("\n"); //一行完成後換行
}
return;
}