c語言溫度設計
1. c語言程序設計答案,怎樣輸入一個華氏溫度,要求輸出攝氏溫度
#include<stdio.h>
int main()
{
float F,c;
while(1)
{
printf("請輸入華氏溫度:");
scanf("%f",&F);
c=5*(F-32)/9;
printf("攝氏溫度為:%0.2f",c);
return 0;
}
}
2. c語言:輸入一個華氏溫度,要求輸出攝氏溫度。公式為:
具體公式如下:
#include <stdio.h>
void main()
{
float c,f;
printf("請輸入一個華氏溫度 ");
scanf("%f",&f);
c=(f-32)*5/9;
printf("它的攝氏溫度為:%.2f",c);
}
(2)c語言溫度設計擴展閱讀:
C語言-基本運算
除法運算 /
整數除於整數,還是整數。參與運算的操作數必須是同類型。
1/2的值是0。參與運算的操作數是什麼類型,得出的值就是什麼類型。 10.5 + 10將右邊的10提升為了double類型 自動類型提升。
int b = 10.5 + 1.7; 自動將大類型轉換為了小類型,會丟失精度。
double a = (double)1 / 2; 注:參與運算的都是整型,所以要強轉一下。
關系運算符。
C語言規定,任何數值都有真假性,任何非0值都為「真」,只有0才為「假」。也就是說,108、-18、4.5、-10.5等都是「真」,0則是「假」。
關系運算符的運算結果只有2種:如果條件成立,結果就為1,也就是「真」;如果條件不成立,結果就為0,也就是「假」。
3. C語言編程攝氏溫度轉換為華氏溫度
攝氏溫標(°C)和華氏溫標(°F)之間的換算關系為:
F=C×1.8+32。
C=(F-32)÷1.8。
C語言是一門面向過程的、抽象化的通用程序設計語言,廣泛應用於底層開發。C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。盡管C語言提供了許多低級處理的功能。
但仍然保持著跨平台的特性,以一個標准規格寫出的C語言程序可在包括類似嵌入式處理器以及超級計算機等作業平台的許多計算機平台上進行編譯。
最新的C語言標準是C18。
C語言簡介:
C語言是一門面向過程的計算機編程語言,與C++、C#、Java等面向對象編程語言有所不同。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、僅產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
C語言描述問題比匯編語言迅速、工作量小、可讀性好、易於調試、修改和移植,而代碼質量與匯編語言相當。C語言一般只比匯編語言代碼生成的目標程序效率低10%-20%。因此,C語言可以編寫系統軟體。
4. c語言編寫程序;輸入一個攝氏溫度,要求輸出華氏溫度。公式為f=9/5*c+32
程序如下:
#include <stdio.h>
int main()
{
int f;
float c;
printf("請輸入一個華氏溫度 ");
scanf_s("%d", &f);
c = (float)(f - 32) * 5 / 9;
printf("它的攝氏溫度為:%.2f", c);
}
如圖:
(4)c語言溫度設計擴展閱讀:
C語言編寫程序時的注意事項:
1、書寫標識符時,忽略了大小寫字母的區別
編譯程序把a和A認為是兩個不同的變數名,而顯示出錯信息。C認為大寫字母和小寫字母是兩個不同的字元。習慣上,符號常量名用大寫,變數名用小寫表示,以增加可讀性。
2、忽略了變數的類型,進行了不合法的運算
%是求余運算,得到a/b的整余數。整型變數a和b可以進行求余運算,而實型變數則不允許進行「求余」運算。
3、將字元常量與字元串常量混淆
在這里就混淆了字元常量與字元串常量,字元常量是由一對單引號括起來的單個字元,字元串常量是一對雙引號括起來的字元序列。C規定以「」作字元串結束標志,它是由系統自動加上的,所以字元串「a」實際上包含兩個字元:『a』和『 』,而把它賦給一個字元變數是不行的。
4、忽略了「=」與「==」的區別
在許多高級語言中,用「=」符號作為關系運算符「等於」。但C語言中,「=」是賦值運算符,「==」是關系運算符,由於習慣問題,初學者往往會犯這樣的錯誤。
5、忘記加分號
分號是C語句中不可缺少的一部分,語句末尾必須有分號。編譯時,編譯程序在「a=1」後面沒發現分號,就把下一行「b=2」也作為上一行語句的一部分,這就會出現語法錯誤。
改錯時,有時在被指出有錯的一行中未發現錯誤,就需要看一下上一行是否漏掉了分號。對於復合語句來說,最後一個語句中最後的分號不能忽略不寫(這是和PASCAL不同的)。
6、多加分號
對於一個復合語句, 復合語句的花括弧後不應再加分號,否則將會畫蛇添足。如:
if (a%3==0);I++;本是如果3整除a,則I加1。但由於if (a%3==0)後多加了分號,則if語句到此結束,程序將執行I++語句,不論3是否整除a,I都將自動加1。
7、輸入變數時忘記加地址運算符「&」
int a,b;scanf(「%d%d」,a,b);這是不合法的。scanf函數的作用是:按照a、b在內存的地址將a、b的值存進去。「&a」指a在內存中的地址。
8、輸入數據的方式與要求不符
scanf(「%d%d」,&a,&b);輸入時,不能用逗號作兩個數據間的分隔符;
scanf(「%d,%d」,&a,&b);C規定:如果在「格式控制」字元串中除了格式說明以外還有其它字元,則在輸入數據時應輸入與這些字元相同的字元。
參考資料來源:C語言-網路
5. C語言編程:輸入一個華氏溫度,要求輸出攝氏溫度,公式為:
#include<stdio.h>intmain(){doublec,f;printf("請輸入華氏溫度:");scanf("%lf",&f);c=5.0/9*(f-32);printf("%g華氏溫度是%.2f攝氏溫度 ",f,c);return0;}
#include<iostream>
using namespace std;
int main()
{
float f,c;
cout<<"請輸入華氏溫度:";
cin>>f;
c=5*(f-32)/9;
cout<<"攝氏溫度為:"<<c<<endl;
return 0;
}
6. c語言程序設計 溫度轉換
#include<stdio.h>
intmain()
{intd;
floatt,t1;
printf("確定要轉換的類型: 1)華氏轉攝氏 ");
printf("2)攝氏轉華氏 請選擇1或2:");
scanf("%d",&d);
printf("請輸入溫度:");
scanf("%f",&t);
if(d==1)
{t1=(t-32)*5/9;
printf("攝氏溫度為%.2f度 ",t1);
}
else
{t1=t*9/5+32;
printf("華氏溫度為%.2f度 ",t1);
}
return0;
}
7. 單片機數字溫度計設計用C語言寫程序
#include <reg51.h>
#define uchar unsigned char
sbit BEEP=P3^7;
//接控制繼電器
sbit DQ = P3^6;
//接溫度感測器18B20
uchar t[2],number=0,*pt;
//溫度值
uchar TempBuffer1[4]={0,0,0,0};
uchar Tmax=50,Tmin=10;
uchar distab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff,0xfe,0xf7};
uchar currtemp;
void t0isr() interrupt 1
{
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
P2=1<<number;
if(number==2)P0=distab[TempBuffer1[0]]&0x7f;
else P0=distab[TempBuffer1[0]];
number++;
if(number>3)number=0;
}
void delay_18B20(unsigned int i)
{
while(i--);
}
/**********ds18b20初始化函數**********************/
void Init_DS18B20(void)
{
bit x=0;
do{
DQ=1;
delay_18B20(8);
DQ = 0; //單片機將DQ拉低
delay_18B20(90); //精確延時 大於 480us
DQ = 1; //拉高匯流排
delay_18B20(14);
x=DQ; //稍做延時後 如果x=0則初始化成功 x=1則初始化失敗,繼續初始化
}while(x);
delay_18B20(20);
}
/***********ds18b20讀一個位元組**************/
unsigned char ReadOneChar(void)
{
unsigned char i=0;
unsigned char dat = 0;
for (i=8;i>0;i--)
{
DQ = 0; // 給脈沖信號
dat>>=1;
DQ = 1; // 給脈沖信號
if(DQ)
dat|=0x80;
delay_18B20(4);
}
return(dat);
}
/*************ds18b20寫一個位元組****************/
void WriteOneChar(unsigned char dat)
{
unsigned char i=0;
for (i=8; i>0; i--)
{
DQ = 0;
DQ = dat&0x01;
delay_18B20(5);
DQ = 1;
dat>>=1;
}
}
/**************讀取ds18b20當前溫度************/
unsigned char *ReadTemperature(unsigned char rs)
{
unsigned char tt[2];
delay_18B20(80);
Init_DS18B20();
WriteOneChar(0xCC); //跳過讀序號列號的操作
WriteOneChar(0x44);
//啟動溫度轉換
delay_18B20(80);
Init_DS18B20();
WriteOneChar(0xCC);
//跳過讀序號列號的操作
WriteOneChar(0xBE);
//讀取溫度寄存器等(共可讀9個寄存器)前兩個就是溫度
tt[0]=ReadOneChar(); //讀取溫度值低位
tt[1]=ReadOneChar(); //讀取溫度值高位
return(tt);
}
void covert1(void)
//將溫度轉換為LED顯示的數據
{
uchar x=0x00,y=0x00;
t[0]=*pt;
pt++;
t[1]=*pt;
if(t[1]&0x080) //判斷正負溫度
{
TempBuffer1[0]=0x0c;
//c代表負
t[1]=~t[1];
/*下面幾句把負數的補碼*/
t[0]=~t[0];
/*換算成絕對值*********/
x=t[0]+1;
t[0]=x;
if(x==0x00)t[1]++;
}
else TempBuffer1[0]=0x0a;
//A代表正
t[1]<<=4;
//將高位元組左移4位
t[1]=t[1]&0xf0;
x=t[0];
//將t[0]暫存到X,因為取小數部分還要用到它
x>>=4;
//右移4位
x=x&0x0f;
//和前面兩句就是取出t[0]的高四位
y=t[1]|x;
//將高低位元組的有效值的整數部分拼成一個位元組
TempBuffer1[1]=(y%100)/10;
TempBuffer1[2]=(y%100)%10;
t[0]=t[0]&0x0f;
//小數部分
TempBuffer1[3]=t[0]*10/16;
if(currtemp<Tmin || currtemp>Tmax)BEEP=1;
else BEEP=0;
}
void convert(char tmp)
{
uchar a;
if(tmp<0)
{
TempBuffer1[0]=0x0c;
a=~tmp+1;
}
else
{
TempBuffer1[0]=0x0a;
a=tmp;
}
TempBuffer1[1]=(a%100)/10;
TempBuffer1[2]=(a%100)%10;
}
main()
{
TMOD=0x01;
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
TR0=1;
ET0=1;
EA=1;
out=1;
flag=0;
ReadTemperature(0x3f);
delay_18B20(50000);
//延時等待18B20數據穩定
while(1)
{
pt=ReadTemperature(0x7f); //讀取溫度,溫度值存放在一個兩個位元組的數組中
if(dismod==0)covert1();
delay_18B20(30000);
}
}
8. C語言:編寫攝氏溫度、華氏溫度轉換程序,怎麼寫
#include<stdio.h>
voidmain()
{
floatF,C;
printf("請輸入您需要轉換的攝氏溫度:");
scanf("%f",&C);
F=(C+32)*9/5.0;
printf("其對應的華氏溫度為:%.2f ",F);
}main()
{
floatC,F;
scanf("%f",&F);
C=5.0/9*(F-32);
printf("%8.2f",C);
}#include<stdio.h>
intmain(void)
{
floatc;
printf("請輸入攝氏度:");
scanf("%f",&c);
printf("對應的華氏度:%.2f ",(c+92)*9/5);
return0;
}
9. c語言編程怎麼設計溫度轉換