❶ 跪求,用C语言编写单摆来回摆动的程序,,注意不是弹簧单摆,,急啊!!!谢谢了
# include<stdio.h>
float s(float *p,int n)
{ int i;
float s=0.;
for(i=0;i<7;i++,p++)
return s;
}
void main()
;
float ave,sum;
int i,n=0;
sum=s(a,7);
printf("7天共接待参观人数为%.2f万人\n",sum);
ave=sum/7;
printf("平均每天接待%.2f万人\n",ave);
for(i=0;i<7;i++)
printf("高于平均数的有%d天\n",n);
}
❷ 51单片机C语言如何实现8个流水灯左移三次,后右移三次;如此循环
51单片机C语言实现循环8个流水灯左移三次,后右移三次。
例程:
#include<reg51.h>//51单片机头文件
#include<intrins.h>//包含有左右循环移位子函数的库
#defineuintunsignedint//宏定义
#defineucharunsignedchar//宏定义
sbitbeep=P2^3;
voiddelay(uintz)//延时函数,z的取值为这个函数的延时ms数,如delay(200);大约延时200ms.
{//delay(500);大约延时500ms.
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
voidmain()//主函数
{
uchara,i,j;
while(1)//大循环
{
a=0xfe;//赋初值
for(j=0;j<3;j++)for(i=0;i<8;i++)//左移三次
{
P1=a;//点亮小灯
beep=0;//开启蜂鸣器
delay(50);//延时50毫秒
beep=1;//关闭蜂鸣器
delay(50);//再延时50毫秒
a=_crol_(a,1);//将a变量循环左移一位
}
a=0x7f;
for(j=0;j<3;j++)for(i=0;i<8;i++)//右移三次
{
P1=a;//点亮小灯
beep=0;//开启蜂鸣器
delay(50);//延时50毫秒
beep=1;//关闭蜂鸣器
delay(50);//再延时50毫秒
a=_cror_(a,1);//将a变量循环右移一位
}
}
}
51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。
❸ 3个C语言函数调用程序求解
第1题:是与斐波那契额数列(1,1,2,3,5,8)有关。采用的方式是函数的递归调用,内即:自己容调用自己,输入的是3,那么就是求前三个数的和,即:1+1+2=4
第2题:考察的函数的嵌套调用,即:把函数的结果作为参数再次调用函数。
d=f(f(3,4),f(3,5)),先求f(3,4)和f(3,5)
f(3,4)等价于(4-3)*3=3(把3传给x,把4传给y);
f(3,5)等价于(5-3)*3=6(把3传给x,把5传给y);
d=f(3,6),同上,把3传给x,把6传给y,(6-3)*3=9
第3题:考察a++的用法,先赋值,再自增1,如:
i=1;
j=i++;
那么:最后j的结果是1,i的结果是2(先把i的值赋给j,i再自增1变为2)
循环中i的取值分别是0,1,也就是循环两次
执行两次a++,k=funa(3),即把3传给a
a=c++,b++ 相当于a=c++;b++;c的值是3,还是先赋值再加1,把3直接赋给a,所以最终a的值是3
❹ 用数码管显示路灯亮的时间,用C语言写单片机程序
#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
bit red,green,yellow,turnred;//定义红绿黄灯标志位
code unsigned char tab[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//共阴数码管 0-9
unsigned char Dis_Shiwei;//定义十位
unsigned char Dis_Gewei; //定义个位
/******************************************************************/
/* 延时函数 */
/******************************************************************/
void delay(unsigned int cnt)
{
while(--cnt);
}
/******************************************************************/
/* 主函数 */
/******************************************************************/
main()
{
TMOD |=0x01;//定时器设置 10ms in 12M crystal
TH0=0xd8;
TL0=0xf0;
IE= 0x82; //打开中断
TR0=1;
P1=0xfc; //红灯亮
red =1;
while(1)
{
P0=Dis_Shiwei;//显示十位
P2=0;
delay(300); //短暂延时
P0=Dis_Gewei; //显示个位
P2=1;
delay(300);
}
}
/******************************************************************/
/* 定时器中断函数 */
/******************************************************************/
void tim(void) interrupt 1 using 1
{
static unsigned char second=60,count; //初值99
TH0=0xd8;//重新赋值
TL0=0xf0;
count++;
if (count==100)
{
count=0;
second--;//秒减1
if(second==0)
{ //这里添加定时到0的代码 ,可以是灯电路,继电器吸合等,或者执行一个程序
if(red)
{
red=0;yellow=1;
second=5;
P1=0xF3;//黄灯亮5秒
}
else if(yellow && !turnred)
{
yellow=0;green=1;
second=50;
P1=0xCF;//绿灯亮50秒
}
else if(green)
{
yellow=1;green=0;
second=5;
P1=0xF3;//黄灯亮5秒
turnred=1;
}
else if(yellow && turnred)
{
red=1;yellow=0;
P1=0xFC;//红灯亮60秒
second=60;
turnred=0;
}
}
Dis_Shiwei=tab[second/10];//十位显示值处理
Dis_Gewei=tab[second%10]; //个位显示处理
}
}
❺ c语言怎么编写
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char fun(char *a,char *b)
{
char *t;
strcpy(t,a);
strcpy(a,b);
strcpy(b,t);
}
struct st{
char a[6][20];
};
int main()
{
struct st s[111];
int n,x[111],k=0,ts,sum=0;
scanf("%d",&n);
printf("学号 姓名 数学 物理 英语 计算机 ");
for(int i=0;i<n;i++)
{
sum=0;
for(int j=0;j<6;j++)
{
scanf("%s",s[i].a[j]);
if(j!=0&&j!=1)
{
sum+=atoi(s[i].a[j]);
}
}
x[k++]=sum/3;
}
for(int i=0;i<k;i++)
{
for(int j=0;j<k-i-1;j++)
{
if(x[j]>x[j+1])
{
ts=x[j];
x[j]=x[j+1];
x[j+1]=ts;
for(int l=0;l<6;l++)
fun(s[j].a[l],s[j+1].a[l]);
}
}
}
printf("学号 姓名 数学 物理 英语 计算机 平均成绩 ");
for(int i=0;i<n;i++)
{
for(int j=0;j<6;j++)
{
printf("%s",s[i].a[j]);
for(int k=0;k<8-strlen(s[i].a[j]);k++)
printf(" ");
}
printf("%8d ",x[i]);
}
return 0;
}