c語言d3
① c語言 程序D3.c的功能是將字元串yy在屏幕上輸出。 (只能修改 /*****Found******/下的第一句····)
for(yy[0];*yy!='\0';yy++)
-----------物聯網校企聯盟技術部
② c語言中如何進行四捨五入,求詳細解釋!!謝謝!
方法一:
#include<stdio.h>
int main()
{
double d1,d2,d3;
d1=-3.1415926;
d2=(int)(d1*10+0.5)*0.1;
printf("d1=%f,保留一位小數的結果為:%.1f ",d1,d2);
d3=(int)(d1*1000+0.5)*0.001;
printf("d1=%f,保留三位小數的結果為:%.3f",d1,d3);
總結四捨五入保留n為小數
(int)(x*10的n次方+0.5)*10的負n次方;
其次這個方法對負數無效;如果非要用可以先取正數部分算,最後加上負號
}
方法二:
使用round()函數。
#include"stdio.h"
#include"math.h"
void main()
{
float x;
scanf("%f",&x);
int y = round(x);
printf("%d",y);
}
(2)c語言d3擴展閱讀:
C語言編寫注意事項:
1、%運算符不能應用與float或double類型。
2、char類型轉換為int型時, 無法判斷它是signed還是unsigned.這樣其結果有可能為負數, 因此轉換時盡量指定signed和unsigned限制符。
3、++i與i++不同之處: ++i是先+1在使用, i++是先使用i在遞加1。
4、三元運算符"?:" 第一個表達式的括弧不是必須的,但是由於三元表達式的優先順序非常低,我們還是將第一個表達式用()括起便於閱讀和理解。
5、C語言中可以使用遞歸 (即函數調用自身函數), 其不節省儲存器開銷也不加快執行速度, 只是使程序緊湊便於理解。
③ c語言中流水燈8個燈(D1-D8).要求燈是這樣亮1:先奇數燈亮(D1/D3/D5/D7) 2:偶數
#include<stdio.h>
/*
8bit,0-滅,1-亮
*/
intmain()
{
intnum;
unsignedcharch,ah,bh;
num=0;//設定燈的初始狀態為滅-0
ch=num/256;//取出num的0-7位
ah=num|85;//85的二進制數0-7位是01010101,這樣ah的位數控制D1,D3,D5,D7亮
bh=num|170;//170的二進制數0-7位是10101010,這樣bh的位數控制D2,D4,D6,D8亮
printf("%d,%d,%d ",ch,ah,bh);
return0;
}
這樣不知道是不是樓主要的?我也是突然想起這樣去實現下試試的
④ c語言 按照二進制輸出 例如給出 D3, 輸出 D: 01000100 3: 00110011
D3 如果是 16 進制 輸出 DD 33 ,應當是 D:11011101 3:00110011
程序如下:
#include<stdio.h>
main(){
int i;
short int y=0xD3; // 十六進制 數 D3
unsigned char x;
x= (y & 0xf0) >> 4 ;
printf("%1X:",x);
for (i=3;i>=0;i--) printf("%1d",(x>>i) & 0x01);
for (i=3;i>=0;i--) printf("%1d",(x>>i) & 0x01);
printf(" ");
x= y & 0x0f;
printf("%1X:",x);
for (i=3;i>=0;i--) printf("%1d",(x>>i) & 0x01);
for (i=3;i>=0;i--) printf("%1d",(x>>i) & 0x01);
return 0;
}
如果你的D 編碼同 4 ,自己換算一下:x = D-A+1
再套用 for (i=3;i>=0;i--) 。。。。
⑤ a3 = b3 + c3 + d3為完美立方等式。用C語言編程 可以用VC6.0編譯的
這個不難吧,小伙!我這個是沒有優化的,循環有優化的餘地,就當我拋磚引玉吧!
呵呵
#include <stdio.h>
#include <stdlib.h>
main()
{
int MAX = 100;
int N = 100;
int i = 0;
int j =0;
int m = 0;
int n = 0;
printf("輸入整數 N,0 < N <= 100 \n");
scanf("%d",&N);
while(N>MAX || N<0){
printf("輸入整數 N,0 < N <= 100 \n");
scanf("%d",&N);
}
for(i=4;i< N;i++){
for(j = 1;j<i;j++){
for(m=1;m<j;m++){
for(n=1;n<m;n++){
if(i*i*i == j*j*j+m*m*m+n*n*n){
printf("Cube = %d, Triple =(%d,%d,%d) \n",i,n,m,j);
}
}
}
}
}
system("pause");
}
⑥ c語言編程中,怎樣輸入一個三位數,將其各位數字反序輸出,如輸入321,輸出123。
#include "stdio.h"
void main()
{
int num1,num2; //改變前後的數值
int d1,d2,d3;
printf("Please Input a three-digit number:");
loop:
scanf("%d",&num1);
if(num1>999||num1<100)
{
printf("Input again:");
goto loop;
}
else
{
d1=num1/100; //百位
d2=num1%100/10; //十位
d3=num1%10; //個位
num2=d1+d2*10+d3*100;
printf("The sorted number is %d",num2);
}
}
⑦ C語言邏輯表達式的習題
d1=(a<b)||(++a==5)||(c>b--); 因為都是或運算,有一個為真,那麼整個表達式都為真,a<b為真,所以後面的表達式程序都不會去管,所以d1 =1,a=4,b=8,c=5
d2=(a>b)&&(++a==5)||(c>b--);先是與運算,一個為假那麼就是假,a>b為假,所以&&(++a==5)不執行,後面是或運算,再判斷,c>b--,也是假,0||0=0,所以d2=0,a=4,b=7,c=5
d3=(a<b)||(++a==5)&&(c>b--);因為&&的優先順序高所以可以改寫成(a<b)||((++a==5)&&(c>b--)),a<b為真,後面的不判斷,所以d3=1,a=4,b=7,c=5
d4=(a>b)&&(++a==5)&&(c>b--);a〉b為假,後面的也不判斷d4=0,a=4,b=7,c=5
⑧ C語言菜鳥求助。
#include<stdio.h>
main()
{
int
a=4,b=8,c=5;//定義整型變數a,b,c,並賦初值a=4,b=8,c=5
int
d1,d2,d3,d4;//定義四個整型變數d1,d2,d3,d4
d1=(a<b)||(++a==5)||(c>b--);//a<b為真,d1=1,後面的++a和b--不再執行,所以a,b的值不變
printf("d1=%d,a=%d,b=%d,c=%d\n",d1,a,b,c);//輸出1,4,8,5
d2=(a>b)&&(++a==5)||(c>b--);//a>b為假,++a不執行,b--執行,c>b--相當於c>b,b=b-1,c>b為假,所以d2=0,b=7,a不變,c不變
printf("d2=%d,a=%d,b=%d,c=%d\n",d2,a,b,c);//輸出0,4,7,5
d3=(a<b)||(++a==5)&&(c>b--);//a<b為真,++a不執行,b--不執行,c>b為假,所以d3=1,b不變,a不變,c不變
printf("d3=%d,a=%d,b=%d,c=%d\n",d3,a,b,c);//輸出1,4,7,5
d4=(a>b)&&(++a==5)&&(c>b--);//a>b為假,後面不執行,即a,b,c的值不變還是4,7,5
,d4=0
printf("d4=%d,a=%d,b=%d,c=%d\n",d4,a,b,c);//輸出0,4,7,5
}
//說明:&&的優先順序大於||的優先順序。如果在一個式子中,只出現||,程序從左往右執行,一旦出現真值,程序不再執行後面的式子
//如果在一個式子中,只出現&&,程序從左往右執行,一旦出現假值,程序不再執行後面的式子
//如果在一個式子中同時出現&&和||,則先執行&&,再執行||
希望能夠幫到你,如還有疑問,可發到我的郵箱[email protected],我會盡我所能回答。互助互學。
⑨ C語言中如何在文件內查找關鍵字並替換
示例代碼:
#include
struct
data
{
char
data_1;
int
data_2;
};
int
main(int
argc,
char
*argv[])
{
int
i,
j,
n
=
0;
struct
data
d3[]
=
{
{'a',
1},
{'b',
2},
{'a',
3}
};
struct
data
one_class[3]
=
{0};
for(i
=
0,
j
=
0;
i
<
3;
i++)
if
(d3[i].data_1
==
'a')
one_class[j++]
=
d3[i];
n
=
j;
for(j
=
0;
j
<
n;
j++)
printf("%p
",
&one_class[j]);
printf("\n");
return
0;
}
假設要在一個結構體數組d3中尋找滿足data結構體中成員data_1等於字元a的所有結構體並將其存入one_class數組中,並且最後列印出符合要求結構體的地址,不知道你的問題是不是類似這樣的情況?
⑩ 在c語言中 { char d1,d2,d3,d4; int i; printf("請輸入四個數字字
因為D1,D2,D3,D4 定義的是CHAR類型不是整數類型,不能直接驚醒計算,假設D1=『8』那麼D1是不能直接計算的(理論上),因為D1的實際意義不是數字8,而是字元8(ascii碼),所以要用D1-『0』 才等於8,這里的『0』也是個字元,根據ascii碼的排列,『8』比『0』多了 8。