用c語言編寫計數器程序,c語言中的計數器

本文目錄一覽:

c語言計數器

#include stdlib.h

#include math.h

#include graphics.h

#include stdio.h

#include process.h

#define EXCAPE 27

#define ENTER 13

main(){

int press,i,x,y,x1,y1,ch_z=0;

int dian=0;

char ch=’0′; /*input + – * / */

char emp[80],sum[80],*e,*s;

double yuan=0.000000000000;

void init(void);

void clear_z(char *u);

double strtoflt(char *p);

int getkey();

int gd=DETECT, gm;

initgraph(gd, gm, “”);

e=emp;

s=sum;

init();

x = (getmaxx() / 2) – 120;

y = (getmaxy() / 2) – 150;

x1 = (getmaxx() / 2) + 120;

y1 = (getmaxy() / 2) + 150;

while(1){

press = getkey();

switch(press){

case EXCAPE:

exit(0);

case 47:

bar (x + 10, y + 80 + 10, x + 60 – 10, y + 80 + 60 – 10);

delay(8000);

init();

if (ch!=’0′){

switch(ch){

case ‘/’:

if (strtoflt(emp)==0.0){

ch=’0′;

ch_z=0;

dian=0;

emp[0]=’\0′;

sum[0]=’\0′;

e=emp;

s=sum;

outtextxy(x+30,y+40,”error!!!!!”);

break;

}

yuan = strtoflt(sum) / strtoflt(emp);

sprintf(sum,”%0.10f”,yuan);

clear_z(sum);

outtextxy(x+30,y+40,sum);

break;

case ‘*’:

yuan = strtoflt(sum) * strtoflt(emp);

sprintf(sum,”%0.10f”,yuan);

clear_z(sum);

outtextxy(x+30,y+40,sum);

break;

case ‘+’:

yuan = strtoflt(sum) + strtoflt(emp);

sprintf(sum,”%0.10f”,yuan);

clear_z(sum);

outtextxy(x+30,y+40,sum);

break;

case ‘-‘:

if (strtoflt(sum)=strtoflt(emp)){

yuan = strtoflt(sum) – strtoflt(emp);

sprintf(sum,”%0.10f”,yuan);

}

else{

yuan=strtoflt(emp)-strtoflt(sum);

sprintf(sum,”-%0.10f”,yuan);

}

clear_z(sum);

outtextxy(x+30,y+40,sum);

emp[0]=’\0′;

}

}

else{

if (ch_z==0){

outtextxy(x+30,y+40,emp);

stpcpy(sum,emp);

}

else{

outtextxy(x+30,y+40,sum);

}

}

ch=’/’;

ch_z=0;

emp[0]=’\0′;

e=emp;

dian=0;

break;

case 42:

bar (x + 60 + 10, y + 80 + 10, x + 60 * 2 – 10, y + 80 + 60 – 10);

delay(8000);

init();

if (ch!=’0′){

switch(ch){

case ‘/’:

yuan = strtoflt(sum) / strtoflt(emp);

sprintf(sum,”%0.10f”,yuan);

clear_z(sum);

outtextxy(x+30,y+40,sum);

emp[0]=’\0′;

e=emp;

break;

case ‘*’:

yuan = strtoflt(sum) * strtoflt(emp);

sprintf(sum,”%0.10f”,yuan);

clear_z(sum);

outtextxy(x+30,y+40,sum);

emp[0]=’\0′;

e=emp;

break;

case ‘+’:

yuan = strtoflt(sum) + strtoflt(emp);

sprintf(sum,”%0.10f”,yuan);

clear_z(sum);

outtextxy(x+30,y+40,sum);

emp[0]=’\0′;

e=emp;

break;

case ‘-‘:

if (strtoflt(sum)=strtoflt(emp)){

yuan = strtoflt(sum) – strtoflt(emp);

sprintf(sum,”%0.10f”,yuan);

}

else{

yuan=strtoflt(emp)-strtoflt(sum);

sprintf(sum,”-%0.10f”,yuan);

}

clear_z(sum);

outtextxy(x+30,y+40,sum);

emp[0]=’\0′;

e=emp;

break;

}

}

else{

if (ch_z==0){

outtextxy(x+30,y+40,emp);

stpcpy(sum,emp);

e=emp;

}

else

outtextxy(x+30,y+40,sum);

}

ch=’*’;

ch_z=0;

dian=0;

break;

case 45:

bar (x + 60 * 2 + 10, y + 80 + 10, x + 60 * 3 – 10, y + 80 + 60 – 10);

delay(8000);

init();

if (ch!=’0′){

switch(ch){

case ‘/’:

yuan = strtoflt(sum) / strtoflt(emp);

sprintf(sum,”%0.10f”,yuan);

clear_z(sum);

outtextxy(x+30,y+40,sum);

emp[0]=’\0′;

e=emp;

break;

case ‘*’:

yuan = strtoflt(sum) * strtoflt(emp);

sprintf(sum,”%0.10f”,yuan);

clear_z(sum);

outtextxy(x+30,y+40,sum);

emp[0]=’\0′;

e=emp;

break;

case ‘+’:

yuan = strtoflt(sum) + strtoflt(emp);

sprintf(sum,”%0.10f”,yuan);

clear_z(sum);

outtextxy(x+30,y+40,sum);

emp[0]=’\0′;

e=emp;

break;

case ‘-‘:

if (strtoflt(sum)=strtoflt(emp)){

yuan = strtoflt(sum) – strtoflt(emp);

sprintf(sum,”%0.10f”,yuan);

}

else{

yuan=strtoflt(emp)-strtoflt(sum);

sprintf(sum,”-%0.10f”,yuan);

}

clear_z(sum);

outtextxy(x+30,y+40,sum);

emp[0]=’\0′;

e=emp;

break;

}

}

else{

if (ch_z==0){

outtextxy(x+30,y+40,emp);

stpcpy(sum,emp);

e=emp;

}

else

outtextxy(x+30,y+40,sum);

}

ch=’-‘;

ch_z=0;

dian=0;

break;

case 43:

bar (x + 60 * 3 + 10, y + 80 + 10, x + 60 * 4 – 10, y + 80 + 60 – 10);

delay(8000);

init();

if (ch!=’0′){

switch(ch){

case ‘/’:

yuan = strtoflt(sum) / strtoflt(emp);

sprintf(sum,”%0.10f”,yuan);

clear_z(sum);

outtextxy(x+30,y+40,sum);

emp[0]=’\0′;

e=emp;

break;

case ‘*’:

yuan = strtoflt(sum) * strtoflt(emp);

sprintf(sum,”%0.10f”,yuan);

clear_z(sum);

outtextxy(x+30,y+40,sum);

emp[0]=’\0′;

e=emp;

break;

case ‘+’:

yuan = strtoflt(sum) + strtoflt(emp);

sprintf(sum,”%0.10f”,yuan);

clear_z(sum);

outtextxy(x+30,y+40,sum);

emp[0]=’\0′;

e=emp;

break;

case ‘-‘:

if (strtoflt(sum)=strtoflt(emp)){

yuan = strtoflt(sum) – strtoflt(emp);

sprintf(sum,”%0.10f”,yuan);

}

else{

yuan=strtoflt(emp)-strtoflt(sum);

sprintf(sum,”-%0.10f”,yuan);

}

clear_z(sum);

outtextxy(x+30,y+40,sum);

emp[0]=’\0′;

e=emp;

break;

}

}

else{

if (ch_z==0){

outtextxy(x+30,y+40,emp);

stpcpy(sum,emp);

e=emp;

}

else

outtextxy(x+30,y+40,sum);

}

ch=’+’;

ch_z=0;

dian=0;

break;

case 49:

bar (x + 10, y + 80 + 53 + 10, x + 60 – 10, y + 80 + 53 * 2 – 4);

delay(8000);

init();

for (i=0;i=79;i++){

if (emp[i]==’\0′)

break;

}

if (ch_z==0){

*e=’1′;e++;*e=’\0′;

outtextxy(x+30,y+40,emp);

}

else{

outtextxy(x+30,y+40,sum);

}

break;

case 50:

bar (x + 60 + 10, y + 80 + 53 + 10, x + 60 * 2 – 10, y + 80 + 53 * 2 – 4);

delay(8000);

init();

for (i=0;i=79;i++){

if (emp[i]==’\0′)

break;

}

if (ch_z==0){

*e=’2′;e++;*e=’\0′;

outtextxy(x+30,y+40,emp);

}

else{

outtextxy(x+30,y+40,sum);

}

break;

case 51:

bar (x + 60 * 2 + 10, y + 80 + 53 + 10, x + 60 * 3 – 10, y + 80 + 53 * 2 – 4);

delay(8000);

init();

for (i=0;i=79;i++){

if (emp[i]==’\0′)

break;

}

if (ch_z==0){

*e=’3′;e++;*e=’\0′;

outtextxy(x+30,y+40,emp);

}

else{

outtextxy(x+30,y+40,sum);

}

break;

case ENTER:

bar (x + 60 * 3 + 10, y + 80 + 53 + 10, x + 60 * 4 – 10, y + 80 + 53 * 2 – 4);

delay(8000);

init();

if (ch!=’0′){

switch(ch){

case ‘/’:

yuan = strtoflt(sum) / strtoflt(emp);

sprintf(sum,”%0.10f”,yuan);

clear_z(sum);

outtextxy(x+30,y+40,sum);

emp[0]=’\0′;

e=emp;

break;

case ‘*’:

yuan = strtoflt(sum) * strtoflt(emp);

sprintf(sum,”%0.10f”,yuan);

clear_z(sum);

outtextxy(x+30,y+40,sum);

emp[0]=’\0′;

e=emp;

break;

case ‘+’:

yuan = strtoflt(sum) + strtoflt(emp);

sprintf(sum,”%0.10f”,yuan);

clear_z(sum);

outtextxy(x+30,y+40,sum);

emp[0]=’\0′;

e=emp;

break;

case ‘-‘:

if (strtoflt(sum)=strtoflt(emp)){

yuan = strtoflt(sum) – strtoflt(emp);

sprintf(sum,”%0.10f”,yuan);

}

else{

yuan=strtoflt(emp)-strtoflt(sum);

sprintf(sum,”-%0.10f”,yuan);

}

clear_z(sum);

outtextxy(x+30,y+40,sum);

emp[0]=’\0′;

e=emp;

break;

}

}

else{

if (ch_z==0){

outtextxy(x+30,y+40,emp);

stpcpy(sum,emp);

e=emp;

}

else{

outtextxy(x+30,y+40,sum);

}

}

ch=’0′;

ch_z=1;

dian=0;

break;

case 52:

bar (x + 10, y + 80 + 53 * 2 + 10, x + 60 – 10, y + 80 + 53 * 3 – 4);

delay(8000);

init();

if (ch_z==0){

*e=’4′;e++;*e=’\0′;

outtextxy(x+30,y+40,emp);

}

else{

outtextxy(x+30,y+40,sum);

}

break;

case 53:

bar (x + 60 + 10, y + 80 + 53 * 2 + 10, x + 60 * 2 – 10, y + 80 + 53 * 3 – 4);

delay(8000);

init();

if (ch_z==0){

*e=’5′;e++;*e=’\0′;

outtextxy(x+30,y+40,emp);

}

else{

outtextxy(x+30,y+40,sum);

}

break;

case 54:

bar (x + 60 * 2 +10, y + 80 + 53 * 2 + 10, x + 60 * 3 – 10, y + 80 + 53 * 3 – 4);

delay(8000);

init();

if (ch_z==0){

*e=’6′;e++;*e=’\0′;

outtextxy(x+30,y+40,emp);

}

else{

outtextxy(x+30,y+40,sum);

}

break;

case 46:

bar (x + 60 * 3 + 10, y + 80 + 53 * 2 + 10, x + 60 * 4 – 10, y + 80 + 53 * 3 – 4);

delay(8000);

init();

if (dian==0){

if (ch_z==0){

*e=’.’;e++;*e=’\0′;

outtextxy(x+30,y+40,emp);

}

else{

outtextxy(x+30,y+40,sum);

}

}

else{

if (ch_z==0)

outtextxy(x+30,y+40,emp);

else

outtextxy(x+30,y+40,sum);

}

dian=1;

break;

case 55:

bar (x + 10, y + 80 + 53 * 3 + 10, x + 60 – 10, y + 80 + 53 * 4 – 4);

delay(8000);

init();

if (ch_z==0){

*e=’7′;e++;*e=’\0′;

outtextxy(x+30,y+40,emp);

}

else{

outtextxy(x+30,y+40,sum);

}

break;

case 56:

bar (x + 60 + 10, y + 80 + 53 * 3 + 10, x + 60 * 2 -10, y + 80 + 53 * 4 – 4);

delay(8000);

init();

if (ch_z==0){

*e=’8′;e++;*e=’\0′;

outtextxy(x+30,y+40,emp);

}

else{

outtextxy(x+30,y+40,sum);

}

break;

case 57:

bar (x + 60 * 2 + 10, y + 80 + 53 * 3 + 10, x + 60 * 3 – 10, y + 80 + 53 * 4 – 4);

delay(8000);

init();

if (ch_z==0){

*e=’9′;e++;*e=’\0′;

outtextxy(x+30,y+40,emp);

}

else{

outtextxy(x+30,y+40,sum);

}

break;

case 48:

bar (x + 60 * 3 + 10, y + 80 + 53 * 3 + 10, x + 60 * 4 – 10, y + 80 + 53 * 4 – 4);

delay(8000);

init();

if (ch_z==0){

*e=’0′;e++;*e=’\0′;

outtextxy(x+30,y+40,emp);

}

else{

outtextxy(x+30,y+40,sum);

}

break;

case 32:

emp[0]=’\0′;

sum[0]=’\0′;

e=emp;

s=sum;

ch=’0′;

ch_z=0;

dian=0;

init();

break;

case 8:

delay(8000);

for(i=0;i=79;i++){

if (emp[i]==’\0′)

break;

}

if (i==0)

break;

if (i!=79i!=0){

i–;

emp[i]=’\0′;

e=emp[i];

}

init();

outtextxy(x+30,y+40,emp);

break;

}

}

}

/*———————————————————————*/

void init(void){

int x, y, x1, y1, i, j;

char emp;

x = (getmaxx() / 2) – 120;

y = (getmaxy() / 2) – 150;

x1 = (getmaxx() / 2) + 120;

y1 = (getmaxy() / 2) + 150;

cleardevice();

setbkcolor(3);

setfillstyle(1, 15);

setcolor(15);

settextstyle(1,0,1);

rectangle (x, y, x1, y1);

rectangle (x – 7, y – 7, x1 + 7, y1 + 7);

rectangle (x + 10, y + 10, x1 – 10, y + 80 – 10);

line (x, y + 80, x1, y + 80);

y = y + 80;

for (j = 1; j = 4; j++){

x = (getmaxx() / 2) – 120;

for (i = 1; i = 4; i++){

/* bar (x + 10, y + 10, x + 60 – 10, y + 60 – 10);*/

rectangle(x + 10, y + 10, x + 60 – 10, y + 60 – 10);

if (j == 1){

if (i == 1)

outtextxy(x + 20, y + 20, “/”);

if (i == 2)

outtextxy(x + 25, y + 20, “*”);

if (i == 3)

outtextxy(x + 27, y + 20, “-“);

if (i == 4)

outtextxy(x + 25, y + 20, “+”);

}

if (j == 2){

if (i == 1)

outtextxy(x + 25, y + 20, “1”);

if (i == 2)

outtextxy(x + 25, y + 20, “2”);

if (i == 3)

outtextxy(x + 25, y + 20, “3”);

if (i == 4)

outtextxy(x + 25, y + 20, “=”);

}

if (j == 3){

if (i == 1)

outtextxy(x + 25, y + 20, “4”);

if (i == 2)

outtextxy(x + 25, y + 20, “5”);

if (i == 3)

outtextxy(x + 25, y + 20, “6”);

if (i == 4)

outtextxy(x + 25, y + 20, “.”);

}

if (j == 4){

if (i == 1)

outtextxy(x + 25, y + 20, “7”);

if (i == 2)

outtextxy(x + 25, y + 20, “8”);

if (i == 3)

outtextxy(x + 25, y + 20, “9”);

if (i == 4)

outtextxy(x + 25, y + 20, “0”);

}

x = x + 60;

}

y = y + 53;

}

}

/*———————————————————————*/

int getkey(){

char lowbyte;

int press;

while(bioskey(1)==0);

press = bioskey(0);

press = press0xff? press0xff: press8;

return(press);

}

double strtoflt(char *p)

{

double rtl=0.000000000000;

double pnt=0.000000000000;

double t = 10;

int ispoint = 0;

while (*p!=’\0’||*p!=’.’){

if(*p’0’||*p’9′)

break;

rtl*=10;

rtl+=*p-‘0’;

p++;

}

if (*p==’.’){

ispoint=1;

p++;

}

while(ispoint*p!=’\0′){

pnt+=(double)(*p-‘0’)/t;

t*=10;

p++;

}

rtl+=pnt;

return (rtl);

}

/*———————————————————————–*/

void clear_z(char u[]){

int i;

for(i=strlen(u)-1;i=0;i–){

if (u[i]!=’0′)

break;

}

if (u[i]==’.’){

u[i]=’\0′;

}

else{

i++;

u[i]=’\0′;

}

}

如何用C語言編寫這個計數程序?

按照題目要求編寫的C語言計數程序如下

#includestdio.h

int main(){

int i,start,end,step;

printf(“從哪個數字開始計數:”);

scanf(“%d”,start);

printf(“在哪個數字停止計數:”);

scanf(“%d”,end);

printf(“每次增加的數字:”);

scanf(“%d”,step);

for(i=start;i=end;i=i+step){

printf(“%d\n”,i);

}

return 0;

}

介紹計數器 /定時器 程序 的編寫步驟 (C語言的)

假設你用的晶振為12m,用p1.0口輸出周期為2ms的方波。使用定時器工作方式1.

至於計數初值的計算,授之以魚不如授之以漁!

在定時器模式下,計數器的計數脈衝來自於晶振脈衝的12分頻信號,即對機器周期進行計數。若選擇12m晶振,則定時器的計數頻率為1mhz。假設定時時間為t,機器周期為t1,即12/晶振頻率。x為定時器初值。則

x=2^n-t/t1。方式0,n=13,方式1時,n=16,方式2和方式3,n=8

自己算去吧!

#include

void

inittimer0(void)//

{

tmod

=

0x01;

th0

=

0x0fc;

//計數器初值

tl0

=

0x18;

ea

=

1;

et0

=

1;

tr0

=

1;//開啟定時器t0

}

void

main(void)

{

inittimer0();

}

void

timer0interrupt(void)

interrupt

1

{

th0

=

0x0fc;//重新賦初值

tl0

=

0x18;

p1.0=~p1.0;

//輸出方波

}

用C語言寫兩個計數器的小程序。

很多人回家過年了,所以回答少,程序已通過

#includestdio.h

/*第一個程序:*/

main()

{

int i=1, m=0;

printf(“請輸入一個數:\n”);

while(i!=0){ //while 循環開始當i等於0時,程序中止;

scanf(“%d”,i); //從鍵盤獲取數值,如果i=0,則退出並輸出m的值

//printf(“\n”);

if (i==1) m++; //如果i=1,則m+1;

}

printf(“輸入 ‘1’ 的次數:%d\n”,m);

}

//第二個程序 在第一個基礎上稍修改即可

main()

{

int i=1, n,m=0;

printf(“請輸入N:\n”);

scanf(“%d”,n);

printf(“請輸入一個數:\n”);

while(i!=0){

scanf(“%d”,i); //從鍵盤獲取數值,如果i=0,則退出並輸出m的值

if (in) m++; //如果in,則m+1;

}

printf(“大於N次數:%d\n”,m);

}

用c語言 (c++) 編寫計算器程序

我們平時進行數學運算都是用計算器完成的,那麼如何用C語言編寫一個計算器呢?下面我給大家分享一下。

工具/材料

Dev C++

01

首先我們需要在Dev C++軟體中創建一個C語言項目,項目類型選擇控制台程序,如下圖所示

02

接下來我們在項目下面新建C語言文件,如下圖所示

03

然後我們在C文件中寫入計算器邏輯代碼,主要是讓用戶輸入計算方式,然後程序自動計算,如下圖所示

04

接下來我們點擊運行菜單,選擇下拉菜單中的運行選項,如下圖所示

05

最後在彈出的界面中我們輸入要計算的公式,程序就會自動計算,如下圖所示

51單片機按鍵計數器C語言編程

#includereg51.h

#define uchar unsigned char;

uchar distab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};  //0到f

uchar number,dat,dis[4];

void t0isr() interrupt 1

{

TH0=(65536-5000)/256;

TL0=(65536-5000)%256;

number++;

number%=3;

switch(number)

P1=0x20number;

P0=distab[dis[number]];

}

void int0isr() interrupt 0

{

dat++;

dat%=1000;

dis[0]=dat%10;

dis[1]=dat%100/10;

dis[2]=dat/100;

}

main()

{

TMOD=0x01;

TH0=(65536-5000)/256;

TL0=(65536-5000)%256;

TR1=1;

ET1=1;

EX0=1;

IT0=1;

EA=1;

while(1);

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/185978.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-26 21:09
下一篇 2024-11-26 21:09

相關推薦

  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python程序文件的拓展

    Python是一門功能豐富、易於學習、可讀性高的編程語言。Python程序文件通常以.py為文件拓展名,被廣泛應用於各種領域,包括Web開發、機器學習、科學計算等。為了更好地發揮P…

    編程 2025-04-29
  • AES加密解密演算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密演算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES演算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演著非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python購物車程序

    Python購物車程序是一款基於Python編程語言開發的程序,可以實現購物車的相關功能,包括商品的添加、購買、刪除、統計等。 一、添加商品 添加商品是購物車程序的基礎功能之一,用…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • 爬蟲是一種程序

    爬蟲是一種程序,用於自動獲取互聯網上的信息。本文將從如下多個方面對爬蟲的意義、運行方式、應用場景和技術要點等進行詳細的闡述。 一、爬蟲的意義 1、獲取信息:爬蟲可以自動獲取互聯網上…

    編程 2025-04-29
  • Vb運行程序的三種方法

    VB是一種非常實用的編程工具,它可以被用於開發各種不同的應用程序,從簡單的計算器到更複雜的商業軟體。在VB中,有許多不同的方法可以運行程序,包括編譯器、發布程序以及命令行。在本文中…

    編程 2025-04-29
  • Python一元二次方程求解程序

    本文將詳細闡述Python一元二次方程求解程序的相關知識,為讀者提供全面的程序設計思路和操作方法。 一、方程求解 首先,我們需要了解一元二次方程的求解方法。一元二次方程可以寫作: …

    編程 2025-04-29

發表回復

登錄後才能評論