點斜式: #include<stdio.h> #define N 10 float w = 10.0; float w0 = 0.0; float wn = 100.0; int adc[N+1] = {86,376,687,1021,1379,1760,2164,2592,3043,3515,40 ...
點斜式:
#include<stdio.h> #define N 10 float w = 10.0; float w0 = 0.0; float wn = 100.0; int adc[N+1] = {86,376,687,1021,1379,1760,2164,2592,3043,3515,4008}; float line(int x) { int i; if(x<adc[0]) return(w0); if(x>=adc[N]) return(wn); for(i=0;i<N;i++) if(x<adc[i+1]) break; return (w*i + (w*(x-adc[i])/(adc[i+1]-adc[i]))); } main() { int x; float y; while(1){ printf("\n輸入A/D轉換結果"); scanf("%d",&x); if(x==0) break; y = line(x); printf("\n對應溫度為:%2.2f度",y); } }