1. 小狗给小猫吃糖c语言编程
按照你说的写了1——0000的,算法相同,到1000000应该要解决一个数据类型的问题,好久没用C写应用程序了。呵呵。#include。#include。int isSushu(long int x);。long int caice(long int cai,long int real,long int re_num);。void main()。{。 int i = 0;。 int dog_counter;小狗的糖果数目。 int counter_sushu = 0;1-0000之间的素数数目。 int nosushu_counter;非素数。 int caice_num = 0;小猫猜测的数 int caice_counter = 0;猜测的次数。。。printf("请输入要小狗的糖果数目1---0000\n");。scanf("%d",dog_counter);。。for(i = ;ii++)。{。if(isSushu(i)==1)。{。如果是素数。counter_sushu++;。}。}。。nosushu_counter = 0000-counter_sushu;。。wle(1)。{。printf("请输入小猫猜测的数\n");。 scanf("%d",。caice_counter++;。nosushu_counter = caice(caice_num,dog_counter,nosushu_counter);。if(caice_num == dog_counter)。{。break;。}。} printf("猜测的次数是%d\n",caice_counter);。。}。如果是素数则返回1,否则返回0。int isSushu(long int x)。{。int i = ;。for(i=;ii++)。{。if(x%i == 0)。return 0;。}。return 1;。}。long int caice(long int cai,long int real,long int re_num)。cai为猜测的数,real为真实数目,re_num为剩下需要猜的次数。{。if(cai == real)。{。printf("糖果一共有%d个,猜对了\n",cai);。}。else if(caireal)。{。printf("猜的数目小于真实数目,请小猫重新猜测\n");。re_num = re_num-cai;。}。else if(caireal)。{。printf("猜的数目大于真实数目,请小猫重新猜测");。re_num = cai-1;。}。return re_num;。}。
2. 用switch判断年份属相,C语言编程: 已知2015年是羊年,编程实
提起用switch判断年份属相,大家都知道,有人问C语言编程: 已知2015年是羊年,编程实现,输入任意年份,输出该年属相。(使用switch,另外,还有人想问设计一个程序,输入1900年以后的任意一个年份,计算该年的生肖.(用select case语句做),你知道这是怎么回事?其实java中如何用switchcase语句判断年份对应的生肖?…,下面就一起来看看C语言编程: 已知年是羊年,编程实现,输入任意年份,输出该年属相。(使用switch,希望能够帮助到大家!
用switch判断年份属相
1、C语言编程: 已知年是羊年,编程实现,输入任意年份,输出该年属相。(使用switch
int main() int year;
printf(“请输入年份:”);
scanf(“%d”,&year);
year=(year-)%12;
if(year<0) year+=12;
switch(year)
{
case 0:printf(“今年是羊年!n”);break;
case 1:printf(“今年是猴年!n”);break;
case 2:printf(“今年年!n”);break;
case 3:printf(“今年是狗年!n”);break;
case 4:printf(“今年是猪年!n”);break;
case 5:printf(“今年是鼠年!n”);break;
case 6:printf(“今年是牛年!n”);break;
case 7:printf(“今年是虎年!n”);break;
case 8:printf(“今年是兔年!n”);break;
case 9:printf(“今年是龙年!n”);break;
case 10:printf(“今年是蛇年!n”);break;
case 11:printf(“今年是马年!n”);break;
}
return 0;
2、设计一个程序,输入年以后的任意一个年份,计算该年的生肖.(用select case语句做)
PrivateSubCommand1_Click()
Dimy%,x%,s$
y=Val(InputBox(“输入年以后的任意一个年份”))
java中如何用switchcase语句判断年份对应的生肖?…
Ify>=Then
x=(y-)
SelectCasex
Case0
s=”鼠”
Case1
s=”牛”
Case2
s=”虎”
Case3
s=”兔”
Case4
s=”龙”
Case5
s=”蛇”
Case6
s=”马”
Case7
s=”羊”
Case8
s=”猴”
Case9
s=”鸡”
s=”狗”
s=”猪”
EndSelect
MsgBoxy&”年是”&s&”年”
Else
MsgBox”输入错误,年份必须大于等于”
EndIf
EndSub
以上就是与C语言编程: 已知年是羊年,编程实现,输入任意年份,输出该年属相。(使用switch相关内容,是关于C语言编程: 已知2015年是羊年,编程实现,输入任意年份,输出该年属相。(使用switch的分享。看完用switch判断年份属相后,希望这对大家有所帮助!
3. 51单片机 c语言看门狗程序怎么写
看门狗在51单片机电路里的作用是防止程序 “跑飞”、“死机”后,系统不和穗动作,而采取复位的办法“唤醒”系统段棚帆。
89S51、89S52系列单片机自带有看门狗功能,片内数据区A6H寄存器具有看门狗功能,使用很简单:
#include<reg51.h>
...
sfr WDTRST = 0xA6;
...
void main()
{
WDTRST=0x1E;;//初始化看门狗
WDTRST=0xE1;//初始化看门狗
for(;;)
{
WDTRST=0x1E;;//喂狗指令
WDTRST=0xE1;//喂狗指令
}
}
可见,你只要在程序的大循环体内加一条喂狗指令就行。但这种看门狗功能有限,不是很可靠的,握雹它依靠晶振工作,一旦晶振不起振,就无效了。
实践中多采用外部看门狗的方法,可以选用的芯片很多:MAX708、MAX813
、X25045.....具体编程就要看芯片的参考资料了。
例如:X25045是SPI总线的看门狗芯片,复位端和单片机复位端连接,SPI数据输入你可以选择合适的IO接口。
WREN 0x06 设置写允许位
WRDI 0x04 复位写允许位
RDSR 0x05 读状态寄存器
WRSR 0x01 写状态寄存器
READ 0x03/0x0b 读操作时内部EEPROM页地址
WRITE 0x02/0x0a 写操作时内部EEPROM页地址
#include <reg51.h>
sbit CS= P2^7;
sbit SO= P2^6;
sbit SCK= P2^5;
sbit SI= P2^4;
#define WREN 0x06 //
#define WRDI 0x04 //
#define RDSR 0x05 //
#define WRSR 0x01 //
#define READ0 0x03 //
#define READ1 0x0b //
#define WRITE0 0x02 //
#define WRITE1 0x0a //
#define uchar unsigned char
uchar ReadByte() //read a byte from device
{
bit bData;
uchar ucLoop;
uchar ucData;
for(ucLoop=0;ucLoop<8;ucLoop++)
{
SCK=1;
SCK=0;
bData=SO;
ucData<<=1;
if(bData)
{ ucData|=0x01; }
}
return ucData;
}
void WriteByte(uchar ucData)//write a byte to device
{
uchar ucLoop;
for(ucLoop=0;ucLoop<8;ucLoop++)
{
if((ucData&0x80)==0) //the MSB send first
{SI=0;}
else
{SI=1;}
SCK=0;
SCK=1;
ucData<<=1;
}
}
uchar ReadReg() //read register
{
uchar ucData;
CS=0;
WriteByte(RDSR);
ucData=ReadByte();
CS=1;
return ucData;
}
uchar WriteReg(uchar ucData) //write register
{
uchar ucTemp;
ucTemp=ReadReg();
if((ucTemp&0x01)==1) //the device is busy
return 0;
CS=0;
WriteByte(WREN);//when write the WREN, the cs must have a high level
CS=1;
CS=0;
WriteByte(WRSR);
WriteByte(ucData);
CS=1;
return 1;
}
void WriteEpm(uchar cData,uchar cAddress,bit bRegion)
/* 写入一个字节,cData为写入的数,cAddress为写入地址,bRegion为页 */
{
while((ReadReg()&0x01)==1); //the device is busy
CS=0;
WriteByte(WREN); //when write the wren , the cs must have a high level
CS=1;
CS=0;
if(bRegion==0)
{ WriteByte(WRITE0);} //write the page addr
else
{WriteByte(WRITE1);}
WriteByte(cAddress);
WriteByte(cData);
SCK=0; //
CS=1;
}
uchar ReadEpm(uchar cAddress,bit bRegion)
/* 读入一个字节,cAddress为读入地址,bRegion为页 */
{
uchar cData;
while((ReadReg()&0x01)==1);//the device is busy
CS=0;
if(bRegion==0)
{WriteByte(READ0); }
else
{WriteByte(READ1);}
WriteByte(cAddress);
cData=ReadByte();
CS=1;
return cData;
}
main()
{
WriteReg(0x00);//set the watchdog time as 1.4s
CS=1;
CS=0; //reset the watchdog
}
回复: xumin9514
所有的89S系列都带狗,所有的80C系列都不带狗。
所以89S51 89S52都带狗,80C51、80C52都不带狗。