语言编程

阅读 / 问答 / 标签

机械优化设计大作业:平面连杆机构的优化设计,用C语言编程!

计算 f(x1,x2)=x1^2+2*x2^2-4*x1-2*x1*x2 的无约束极值,初始点x0=[1,1]。/*tt ---- 一维搜索初始步长ff ---- 差分法求梯度时的步长ac ---- 终止迭代收敛精度ad ---- 一维搜索收敛精度n ----- 设计变量的维数xk[n] -- 迭代初始点*/#include<stdio.h>#include<stdlib.h>#include<math.h>#include<conio.h>#define tt 0.01#define ff 1.0e-6#define ac 1.0e-6#define ad 1.0e-6#define n 2double ia;double fny(double *x){ double x1=x[0],x2=x[1];double f;f=x1*x1+2*x2*x2-4*x1-2*x1*x2;return f;}double * iterate(double *x,double a,double *s){double *x1;int i;x1=(double *)malloc(n*sizeof(double));for(i=0;i<n;i++) x1[i]=x[i]+a*s[i];return x1;}double func(double *x,double a,double *s){double *x1;double f;x1=iterate(x,a,s);f=fny(x1);return f;}void finding(double a[3],double f[3],double *xk,double *s){double t=tt;int i;double a1,f1;a[0]=0;f[0]=func(xk,a[0],s);for(i=0;;i++){ a[1]=a[0]+t; f[1]=func(xk,a[1],s); if(f[1]<f[0]) break; if(fabs(f[1]-f[0])>=ad) { t=-t; a[0]=a[1];f[0]=f[1]; } else { if(ia==1) return; //break t=t/2;ia=1; }}for(i=0;;i++){ a[2]=a[1]+t; f[2]=func(xk,a[2],s); if(f[2]>f[1]) break; t=2*t; a[0]=a[1];f[0]=f[1]; a[1]=a[2];f[1]=f[2];}if(a[0]>a[2]){ a1=a[0]; f1=f[0]; a[0]=a[2]; f[0]=f[2]; a[2]=a1; f[2]=f1;}return;}double lagrange(double *xk,double *ft,double *s){ int i;double a[3],f[3];double b,c,d,aa;finding(a,f,xk,s);for(i=0;;i++){ if(ia==1) d=(pow(a[0],2)-pow(a[2],2))*(a[0]-a[1])-(pow(a[0],2)-pow(a[1],2))*(a[0]-a[2]); if(fabs(d)==0) break; c=((f[0]-f[2])*(a[0]-a[1])-(f[0]-f[1])*(a[0]-a[2]))/d; if(fabs(c)==0) break; b=((f[0]-f[1])-c*(pow(a[0],2)-pow(a[1],2)))/(a[0]-a[1]); aa=-b/(2*c); *ft=func(xk,aa,s); if(fabs(aa-a[1])<=ad) if(aa>a[1]) { if(*ft>f[1]) else if(*ft<f[1]) else if(*ft==f[1]) { a[2]=aa;a[0]=a[1]; f[2]=*ft;f[0]=f[1]; a[1]=(a[0]+a[2])/2; f[1]=func(xk,a[1],s); } } else { if(*ft>f[1]) else if(*ft<f[1]) else if(*ft==f[1]) {a[0]=aa;a[2]=a[1]; f[0]=*ft;f[2]=f[1]; a[1]=(a[0]+a[2])/2; f[1]=func(xk,a[1],s); } }}if(*ft>f[1]) return aa;}double *gradient(double *xk){double *g,f1,f2,q;int i;g=(double*)malloc(n*sizeof(double)); f1=fny(xk); for(i=0;i<n;i++){q=ff; xk[i]=xk[i]+q; f2=fny(xk); g[i]=(f2-f1)/q; xk[i]=xk[i]-q;} return g;}double * bfgs(double *xk){double u[n],v[n],h[n][n],dx[n],dg[n],s[n];double aa,ib;double *ft,*xk1,*g1,*g2,*xx,*x0=xk;double fi;int i,j,k;ft=(double *)malloc(sizeof(double));xk1=(double *)malloc(n*sizeof(double));for(i=0;i<n;i++){ s[i]=0; for(j=0;j<n;j++) { h[i][j]=0; if(j==i) h[i][j]=1; }} g1=gradient(xk); fi=fny(xk); x0=xk; for(k=0;k<n;k++) { ib=0; if(ia==1) ib=0; for(i=0;i<n;i++) s[i]=0; for(i=0;i<n;i++) for(j=0;j<n;j++) s[i]+= -h[i][j]*g1[j]; aa=lagrange(xk,ft,s); xk1=iterate(xk,aa,s); g2=gradient(xk1); for(i=0;i<n;i++) if((fabs(g2[i])>=ac)&&(fabs(g2[i]-g1[i])>=ac)) if(ib==0) fi=*ft; if(k==n-1) { int j; xk=xk1; for(i=0;i<n;i++) for(j=0;j<n;j++) { h[i][j]=0; if(j==i) h[i][j]=1; } g1=g2; k=-1; } else { int j; double a1=0,a2=0; for(i=0;i<n;i++) { dg[i]=g2[i]-g1[i]; dx[i]=xk1[i]-xk[i]; } for(i=0;i<n;i++) { int j; u[i]=0;v[i]=0; for(j=0;j<n;j++) { u[i]=u[i]+dg[j]*h[j][i]; v[i]=v[i]+dg[j]*h[i][j]; } } for(j=0;j<n;j++) { a1+=dx[j]*dg[j]; a2+=v[j]*dg[j]; } if(fabs(a1)!=0) { a2=1+a2/a1; for(i=0;i<n;i++) for(j=0;j<n;j++) h[i][j]+=(a2*dx[i]*dx[j]-v[i]*dx[j]-dx[i]*u[j])/a1; } xk=xk1; g1=g2; } } if(*ft>fi) xk=x0; return xx;}void main (){ int k; double *xx,f; double xk[n]=; xx=bfgs(xk); f=fny(xx); printf(" The Optimal Design Result Is: "); for(k=0;k<n;k++) printf(" f*=%f",f); getch();} 这是基于一本书上的算法。但我很奇怪,原书中的算法有结果列出,但是我却不能通过编译。真是纳闷!修改后可以得到结果了,如果你要使用这个简单的程序,你只需更改 维数n、double fny(double *x)的实现部分以及main函数中的xk初值就可以了。不过这个程序也不是很好。

基于80c51单片机的交通灯课程设计汇编语言编程

简单程序流程如下:开始:绿灯东西方向南北方向的红灯延迟30秒东西方向绿灯“南北方向的红灯已关闭东西方向的,黄色的光的南北方向的,黄色的光BR/>5秒延时的东西方向的黄色指示灯熄灭南北方向黄色指示灯熄灭的方向,南北方向20秒的延迟一个南北方向绿灯东西方向红灯绿灯熄灭红灯熄灭东西方向一些黄色的光的黄色光南北方向5秒的延迟将启动...阿尔法Alpha

单片机用什么语言编程

单片机用以下语言可以编程:1、C语言。单片机C语言是一种编译语言,具有编译语言的特点。C语言具有功能丰富的库函数、计算速度快、编译效率高、可移植性好,可直接控制系统。此外,C语言程序具有完整的程序模块结构,为软件开发中模块化程序设计方法的使用提供了有力的保证。2、汇编语言。它的主要优点是占用资源少,程序执行效率高。因为它有一个指令,所以每个指令都很清晰,堆叠和调整都很容易控制,调试也很方便。但是不同类型的单片机可能有不同的编码语言,所以不容易移植。3、PL/M编程语言。P/M是一种具有L/M语言的高级语言,不仅具有L/M语言的高级汇编,而且直接利用CPU的硬件特性进行编程。因此,与其他高级语言相比,它具有更多的功能和更广泛的应用,尤其是在16台单片机的应用领域。4、BASIC编程语言。BASIC是一种高级语言,其英文意思是初学者通用符号代码。在过去的几十年里,BASIC语言被认为是初学者编程的语言,已经从QBASIC发展到很多版本,有很多结构化的思维和编程方法,比如函数、模块、局部变量、全局变量、数据传输等。使用单片机语言的注意事项。1、单片机编程的特点对单片机编程来说,首先要考虑的是单片机的程序空间和数据空间都是有限的,所以要让程序尽量短小精悍,以节省程序占用的存储空间。2、单片机编程的一个主要对象是对单片机的端口和内部寄存器的操作和配置,这个需要比较精确的时序控制。3、单片机算法运算中,尽量使用加法、减法、移位运算,因为乘法和除法运算会非常费时间,尤其是除法,会耗费很多时间,这对于速度本身就有限制的单片机来说,是一个很大的负担。4、高级语言编写单片机程序的缺陷高级语言可以实现更为优化的算法,更为方便的执行方案,但是,高级语言对程序存储空间的占用要比汇编和C语言多很多。这是最致命的一点,单片机有限的存储空间需要靠精打细算来设计程序,根本经不起高级语言臃肿的代码体积。

不同单片机c语言编程有何不同?要学习英飞凌8位和16位单片机c编程,可是几乎所有书都是对51的,该从哪入手

这样吧!你还是先学8位的,16位用的不广泛,我可以介意你看下一个视频吗?绝对对你有作用,我学单片机看了他一篇视频就有了很大认识,<霖锋带你从51征服嵌入式>霖锋老师讲的非常好希望对你有帮助.......谢谢

单片机串口通信C语言编程问题

首先你应该先确认STC(死得惨)的串口波特率是否与电脑的波特率一致,RS-232连接是否正确。另外一个字符应该是‘t",而不是“t”吧?

如何提高单片机C语言编程能力?

多学习单片机的基础知识,多动手制作单片机电路板,多编写单片机程序。www.dzkfw.com.cn/myxin/51c_language.chm 单片机c语言编程资料

如何用c语言编程在单片机上做交通信号灯

看名字

怎样提升自己单片机C语言编程能力啊?求高手指点迷津!我硬件也懂一点 但我想朝编程方面发展 跪求高手指教

找资料,看人家的例程啦

c语言编程c51单片机

#include <reg51.h>#define uchar unsigned char#define uint unsigned intmain(){ uint xdata *xp;//定义指向片外RAM的指针 uint data *p;//定义指向片内RAM的指针 uchar i;//定义循环变量 xp=0x100;//指向片外RAM的100H单元 p=0x30;//指向片内RAM的30H单元 for(i=0;i<10;i++){//循环10次 *p=*xp;//将片外RAM单元中的内容传送给片内RAM单元 xp++;//指向下一个片外RAM单元地址 p++;//指向下一个片内RAM单元地址 }}

求51单片机C语言编程大神帮忙

如何才能将所有要实现的功能把他做成一个程序

单片机用c语言编程,使led灯管从中间开始两个灯向两边循环闪烁

用一个数组就行了

单片机流水灯的C语言编程

这种题目就是向特定端口写值,1亮灯,0灭,如此而已。主要的测试点是结合特定的单片机,将程序的入口点连接成单片机初始化的入口地址。

求用C语言编程实现51单片机的LED灯移动

移动,不循环?没有时间要求?

单片机C语言编程问题

进入中断先关中断,退出中断处理时要清中断标志位。

学习单片机c语言编程,需不需要学习一下数据结构之类的。

刚学就学的简单的,等到你简单的学会了在学难的 吧。

单片机c语言编程100个实例

51单片机C语言编程实例 基础知识:51单片机编程基础 单片机的外部结构: 1. DIP40双列直插; 2. P0,P1,P2,P3四个8位准双向I/O引脚;(作为I/O输入时,要先输出高电平) 3. 电源VCC(PIN40)和地线GND(PIN20); 4. 高电平复位RESET(PIN9);(10uF电容接VCC与RESET,即可实现上电复位) 5. 内置振荡电路,外部只要接晶体至X1(PIN18)和X0(PIN19);(频率为主频的12倍) 6. 程序配置EA(PIN31)接高电平VCC;(运行单片机内部ROM中的程序) 7. P3支持第二功能:RXD、TXD、INT0、INT1、T0、T1 单片机内部I/O部件:(所为学习单片机,实际上就是编程控制以下I/O部件,完成指定任务) 1. 四个8位通用I/O端口,对应引脚P0、P1、P2和P3; 2. 两个16位定时计数器;(TMOD,TCON,TL0,TH0,TL1,TH1) 3. 一个串行通信接口;(SCON,SBUF) 4. 一个中断控制器;(IE,IP) 针对AT89C52单片机,头文件AT89x52.h给出了SFR特殊功能寄存器所有端口的定义。 C语言编程基础: 1. 十六进制表示字节0x5a:二进制为01011010B;0x6E为01101110。 2. 如果将一个16位二进数赋给一个8位的字节变量,则自动截断为低8位,而丢掉高8位。 3. ++var表示对变量var先增一;var—表示对变量后减一。 4. x |= 0x0f;表示为 x = x | 0x0f; 5. TMOD = ( TMOD & 0xf0 ) | 0x05;表示给变量TMOD的低四位赋值0x5,而不改变TMOD的高四位。 6. While( 1 ); 表示无限执行该语句,即死循环。语句后的分号表示空循环体,也就是{;} 在某引脚输出高电平的编程方法:(比如P1.3(PIN4)引脚) 代码 1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P1.3 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. P1_3 = 1; //给P1_3赋值1,引脚P1.3就能输出高电平VCC 5. While( 1 ); //死循环,相当 LOOP: goto LOOP; 6. } 注意:P0的每个引脚要输出高电平时,必须外接上拉电阻(如4K7)至VCC电源。 在某引脚输出低电平的编程方法:(比如P2.7引脚) 代码 1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P2.7 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. P2_7 = 0; //给P2_7赋值0,引脚P2.7就能输出低电平GND 5. While( 1 ); //死循环,相当 LOOP: goto LOOP; 6. } 在某引脚输出方波编程方法:(比如P3.1引脚) 代码 1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P3.1 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. While( 1 ) //非零表示真,如果为真则执行下面循环体的语句 5. { 6. P3_1 = 1; //给P3_1赋值1,引脚P3.1就能输出高电平VCC 7. P3_1 = 0; //给P3_1赋值0,引脚P3.1就能输出低电平GND 8. } //由于一直为真,所以不断输出高、低、高、低……,从而形成方波 9. } 将某引脚的输入电平取反后,从另一个引脚输出:( 比如 P0.4 = NOT( P1.1) ) 代码 1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P0.4和P1.1 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. P1_1 = 1; //初始化。P1.1作为输入,必须输出高电平 5. While( 1 ) //非零表示真,如果为真则执行下面循环体的语句 6. { 7. if( P1_1 == 1 ) //读取P1.1,就是认为P1.1为输入,如果P1.1输入高电平VCC 8. { P0_4 = 0; } //给P0_4赋值0,引脚P0.4就能输出低电平GND 2 51单片机C语言编程实例 9. else //否则P1.1输入为低电平GND 10. //{ P0_4 = 0; } //给P0_4赋值0,引脚P0.4就能输出低电平GND 11. { P0_4 = 1; } //给P0_4赋值1,引脚P0.4就能输出高电平VCC 12. } //由于一直为真,所以不断根据P1.1的输入情况,改变P0.4的输出电平 13. } 将某端口8个引脚输入电平,低四位取反后,从另一个端口8个引脚输出:( 比如 P2 = NOT( P3 ) ) 代码 1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P2和P3 2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口 3. { 4. P3 = 0xff; //初始化。P3作为输入,必须输出高电平,同时给P3口的8个引脚输出高电平 5. While( 1 ) //非零表示真,如果为真则执行下面循环体的语句 6. { //取反的方法是异或1,而不取反的方法则是异或0 7. P2 = P3^0x0f //读取P3,就是认为P3为输入,低四位异或者1,即取反,然后输出 8. } //由于一直为真,所以不断将P3取反输出到P2 9. } 注意:一个字节的8位D7、D6至D0,分别输出到P3.7、P3.6至P3.0,比如P3=0x0f,则P3.7、P3.6、P3.5、P3.4四个引脚都输出低电平,而P3.3、P3.2、P3.1、P3.0四个引脚都输出高电平。同样,输入一个端口P2,即是将P2.7、P2.6至P2.0,读入到一个字节的8位D7、D6至D0。 第一节:单数码管按键显示 单片机最小系统的硬件原理接线图: 1. 接电源:VCC(PIN40)、GND(PIN20)。加接退耦电容0.1uF 2. 接晶体:X1(PIN18)、X2(PIN19)。注意标出晶体频率(选用12MHz),还有辅助电容30pF 3. 接复位:RES(PIN9)。接上电复位电路,以及手动复位电路,分析复位工作原理 4. 接配置:EA(PIN31)。说明原因。 发光二极的控制:单片机I/O输出 将一发光二极管LED的正极(阳极)接P1.1,LED的负极(阴极)接地GND。只要P1.1输出高电平VCC,LED就正向导通(导通时LED上的压降大于1V),有电流流过LED,至发LED发亮。实际上由于P1.1高电平输出电阻为10K,起到输出限流的作用,所以流过LED的电流小于(5V-1V)/10K = 0.4mA。只要P1.1输出低电平GND,实际小于0.3V,LED就不能导通,结果LED不亮。 开关双键的输入:输入先输出高 一个按键KEY_ON接在P1.6与GND之间,另一个按键KEY_OFF接P1.7与GND之间,按KEY_ON后LED亮,按KEY_OFF后LED灭。同时按下LED半亮,LED保持后松开键的状态,即ON亮OFF灭。 代码 1. #include <at89x52.h> 2. #define LED P1^1 //用符号LED代替P1_1 3. #define KEY_ON P1^6 //用符号KEY_ON代替P1_6 4. #define KEY_OFF P1^7 //用符号KEY_OFF代替P1_7 5. void main( void ) //单片机复位后的执行入口,void表示空,无输入参数,无返回值 6. { 7. KEY_ON = 1; //作为输入,首先输出高,接下KEY_ON,P1.6则接地为0,否则输入为1 8. KEY_OFF = 1; //作为输入,首先输出高,接下KEY_OFF,P1.7则接地为0,否则输入为1 9. While( 1 ) //永远为真,所以永远循环执行如下括号内所有语句 10. { 11. if( KEY_ON==0 ) LED=1; //是KEY_ON接下,所示P1.1输出高,LED亮 12. if( KEY_OFF==0 ) LED=0; //是KEY_OFF接下,所示P1.1输出低,LED灭 13. } //松开键后,都不给LED赋值,所以LED保持最后按键状态。 14. //同时按下时,LED不断亮灭,各占一半时间,交替频率很快,由于人眼惯性,看上去为半亮态 15. } 数码管的接法和驱动原理 一支七段数码管实际由8个发光二极管构成,其中7个组形构成数字8的七段笔画,所以称为七段数码管,而余下的1个发光二极管作为小数点。作为习惯,分别给8个发光二极管标上记号:a,b,c,d,e,f,g,h。对应8的顶上一画,按顺时针方向排,中间一画为g,小数点为h。 我们通常又将各二极与一个字节的8位对应,a(D0),b(D1),c(D2),d(D3),e(D4),f(D5),g(D6),h(D7),相应8个发光二极管正好与单片机一个端口Pn的8个引脚连接,这样单片机就可以通过引脚输出高低电平控制8个发光二极的亮与灭,从而显示各种数字和符号;对应字节,引脚接法为:a(Pn.0),b(Pn.1),c(Pn.2),d(Pn.3),e(Pn.4),f(Pn.5),g(Pn.6),h(Pn.7)。 如果将8个发光二极管的负极(阴极)内接在一起,作为数码管的一个引脚,这种数码管则被称为共阴数码管,共同的引脚则称为共阴极,8个正极则为段极。否则,如果是将正极(阳极)内接在一起引出的,则称为共阳数码管,共同的引脚则称为共阳极,8个负极则为段极。 以单支共阴数码管为例,可将段极接到某端口Pn,共阴极接GND,则可编写出对应十六进制码的七段码表字节数据

单片机c语言编程软件有哪些?

windows下首选VS,版本至少vs2005以上,或者用最新的VSCode,不过需要自己配插件,好处是免费,如果做单片机c开发首选eclipse,linux下如果做单片机首选eclipse,其次是clion。eclipse兼容性最好,不过稳定性差一些,vs在win下没有对手,clion用cmake,相比来说大部分c程序用的都是makefile,需要适应一下。Devc++:这个IDE是windows环境下的,操作简单,功能也不弱,适合新手使用。Codeblocks(强力推荐):功能比较强大的c/c++IDE,有着不错的智能提示。拓展资料C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSIC,作为C语言最初的标准。目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、TurboC等。编译器GCC,GNU组织开发的开源免费的编译器MinGW,Windows操作系统下的GCCClang,开源的BSD协议的基于LLVM的编译器VisualC++::cl.exe,MicrosoftVC++自带的编译器集成开发环境CodeBlocks,开源免费的C/C++IDECodeLite,开源、跨平台的C/C++集成开发环境OrwellDev-C++,可移植的C/C++IDEC-FreeLightTableVisualStudio系列HelloWorld

哪些单片机支持c语言编程?

C51, C52, ARM,STM32,AVR,DSP,FPGA等

单片机C语言编程问题

whlie(A[2]==A)A是数组, ‘A[2]==A"明显语法错误。还有既然‘A[2]==A"才能执行while里的语句那‘if(A[2]==B) 。。。"又有什么意义?Keil 4中机型选择是有AT89C52的

单片机,C语言编程问题?

应该是判别条件的范围有问题,有情况没有包含或者漏洞。

单片机C语言编程

这个不难实现,利用独立按键和流水灯的知识可以做的。试试看。

单片机告诉一个地址,怎样用C语言编程读取地址处的值???

4X4键盘还有物理地址?你是怎么得到这个物理地址的呢?-待续-

用c语言编程实现C8051F300单片机1s定时,50Hz的方波输出

#include sbit wave=P1^0;void SetupTimer0(){ TMOD &= 0XF0; //仅保留T1信息 TMOD |= 0X02; //设置T0: 定时功能,方式2,自动重载8位定时器/计数器 TH0 = 256-250;//定时每0.25ms中断一次 TL0 = 256-250; TR0 = 1; //开启定时器 ET0 = 1; //定时器0中断打开}data unsigned char us250;data unsigned int ms;bit WAVE; //用以记住当前wave的状态void Timer0_ISR() interrupt 1 //定时中断服务程序,为按键消抖服务{if (++us250<4) return; us250=0; ++ms;if (ms<10) return;//每10ms波形变化一次,20ms完成一个波形,所以波形是50Hz的ms=0; WAVE=~WAVE; wave=WAVE; //方波输出}void main(){ us250=ms=0;wave=WAVE=0;SetupTimer0(); EA = 1; //全局中断打开while(1); //在中断函数中实现方波输出}

51单片机c语言编程?

对端口输出操作,直接适用赋值语句即可。 比如 P1 = 0x03;对端口读取操作,直接赋值给局部变量即可。对数码管操作,需要先定义 对应的 码表, Tab[16] = {, }分别对应 0~F 的端口输出值、点亮相应的LED位; 然后直接 操作端口输出对应字符即可,比如P1=Tab[3] 数码管输出显示3

单片机用什么语言编程

单片机用以下语言可以编程:1、C语言。单片机C语言是一种编译语言,具有编译语言的特点。C语言具有功能丰富的库函数、计算速度快、编译效率高、可移植性好,可直接控制系统。此外,C语言程序具有完整的程序模块结构,为软件开发中模块化程序设计方法的使用提供了有力的保证。2、汇编语言。它的主要优点是占用资源少,程序执行效率高。因为它有一个指令,所以每个指令都很清晰,堆叠和调整都很容易控制,调试也很方便。但是不同类型的单片机可能有不同的编码语言,所以不容易移植。3、PL/M编程语言。P/M是一种具有L/M语言的高级语言,不仅具有L/M语言的高级汇编,而且直接利用CPU的硬件特性进行编程。因此,与其他高级语言相比,它具有更多的功能和更广泛的应用,尤其是在16台单片机的应用领域。4、BASIC编程语言。BASIC是一种高级语言,其英文意思是初学者通用符号代码。在过去的几十年里,BASIC语言被认为是初学者编程的语言,已经从QBASIC发展到很多版本,有很多结构化的思维和编程方法,比如函数、模块、局部变量、全局变量、数据传输等。使用单片机语言的注意事项。1、单片机编程的特点对单片机编程来说,首先要考虑的是单片机的程序空间和数据空间都是有限的,所以要让程序尽量短小精悍,以节省程序占用的存储空间。2、单片机编程的一个主要对象是对单片机的端口和内部寄存器的操作和配置,这个需要比较精确的时序控制。3、单片机算法运算中,尽量使用加法、减法、移位运算,因为乘法和除法运算会非常费时间,尤其是除法,会耗费很多时间,这对于速度本身就有限制的单片机来说,是一个很大的负担。4、高级语言编写单片机程序的缺陷高级语言可以实现更为优化的算法,更为方便的执行方案,但是,高级语言对程序存储空间的占用要比汇编和C语言多很多。这是最致命的一点,单片机有限的存储空间需要靠精打细算来设计程序,根本经不起高级语言臃肿的代码体积。

c语言编程单片机难吗?

c语言编程单片机不难。学习掌握C语言的语法之后,单片机编程就是遵循单片机的技术规范,编写要实现的功能。其实到后来你会发现这个工作和C语言没有什么关系,用汇编语言你也能实现一样的功能。将C语言用在不同的环境难不难,最终取决于一个人的思维能力。

单片机和C语言编程学习之间有什么联系呢?

单片机中的程序,可以使用C语言编程,也可以使用汇编或者其他语言.单片机本身是硬件,程序是软件,二者结合才可以正常使用.

单片机C语言编程

P1>>4: P1右移4位,相当于P1/(2^4)temp | 0xf0: temp与16进制数0xF0进行或操作,由于0XF0==1111 0000,根据或操作原理,相当于将temp的第四位清0

单片机c语言编程软件有哪些?

windows下首选VS,版本至少vs2005以上,或者用最新的VSCode,不过需要自己配插件,好处是免费,如果做单片机c开发首选eclipse,linux下如果做单片机首选eclipse,其次是clion。eclipse兼容性最好,不过稳定性差一些,vs在win下没有对手,clion用cmake,相比来说大部分c程序用的都是makefile,需要适应一下。Devc++:这个IDE是windows环境下的,操作简单,功能也不弱,适合新手使用。Codeblocks(强力推荐):功能比较强大的c/c++IDE,有着不错的智能提示。拓展资料C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSIC,作为C语言最初的标准。目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、TurboC等。编译器GCC,GNU组织开发的开源免费的编译器MinGW,Windows操作系统下的GCCClang,开源的BSD协议的基于LLVM的编译器VisualC++::cl.exe,MicrosoftVC++自带的编译器集成开发环境CodeBlocks,开源免费的C/C++IDECodeLite,开源、跨平台的C/C++集成开发环境OrwellDev-C++,可移植的C/C++IDEC-FreeLightTableVisualStudio系列HelloWorld

单片机c语言编程

运行提示也贴出来,代码一长就不想看啊!!!

单片机c语言编程

不好意思,弄错了……我把别的题答到这里了,又删除不了,你就严肃处理吧!我违反了哪一条?这拦目连这点删除功能都没有还好意思?莫名其妙!放这里让网友们评说吧……

at89c51单片机 如何用c语言编程啊?

AT89C51单片机的主要组成结构,随着微电子技术的快速发展,以ARM为主的32位MCU(微控制器)已普及开来,8位MCU已被很多人认为将被淘汰,更何况其中的老古董MCS-51系列单片机。但从目前的形势来看,8位MCU还牢牢占据着工业控制领域的主导地位,一个原因是8位MCU的开发成本比较低,也有大量的成熟设计方案,还有一个原因是历史的延续,新的产品还处在不断变化中,老产品则是经数十年的淘汰而留存下来的精品。

单片机编程和c语言编程有啥区别,是不是只有头文件有点差别

差别很大好吧。单片机基本等同于硬件编程了,纯底层的语言;C语言可是做软件的,可以写客户端程序的。

《大地测量学基础》里面的高斯投影正反算公式及换带计算的VB或者C语言编程

好东西啊,

汇编语言程序设计步骤有那几步_汇编语言编程步骤有哪些

汇编语言程序设计步骤:1、分析问题,抽象出描述问题的数据模型2、确定问题的算法思想3、画出流程图或结构图4、分配存储器和工作单元(寄存器)5、逐条编写程序6、静态检查,上机调试例:编程查找考生的最高分,假设所有考生分数已存入计算机内存1、分析问题根据条件、特点、规律→数学模型本例分数已给定为0~200之间的整数集合(考虑加试分),记为{S},找max{S}(注:简单问题不一定写数学模型)2、确定算法思想最好利用现成算法和程序设计方法,若无,则需根据实践经验总结算法思想如本例,从成绩单第一分数往下看,边看边比较,记住较高分,舍弃较低分,直至看完,最高分存于脑中归纳算法思想:建立数据指针并指向数据区首地址将第一数取入寄存器(如AL),与下一数比较,若下一数大则将其取入寄存器,否则调整指针,再与下一数比较,重复上述过程,直至比较完毕,寄存器中即最高分读分数用MOV指令,比较用CMP指令,分析判断用条件转移指令3、画流程图或结构图有逻辑流程、算法流程、程序流程等,复杂问题需画模块结构本例简单,只画出程序流程图(用模块化结构的N-S流程图表示):本例的N-S流程图图中初始化包括:设一个计数器,将分数个数减一后送计数器,每比较一次减一,至零查找结束;建立一个指针指向数据区开始初始化取第一数到寄存器与下一数比较下一数大?是否取大数到寄存器修改指针,计数次数减一返回到循环体开始,直到计数次数为0退出循环结束4、分配存储器空间和工作单元(寄存器)定义数据段、堆栈段、代码段等工作单元一般用寄存器本例:分数放数据段,建100字节堆栈空间,BX作数据指针,CX作计数器,AL放最高分5、逐条编写程序DATASEGMENTFENDB85,90,60,75,87,35,80,78,96,82;存分数MAXDB?;存最高分DATAENDSSTACKSEGMENTPARASTACK‘STACK"DB100DUP(?);100字节堆栈STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTARTPROCFARPUSHDSMOVAX,0PUSHAX;为了返回DOSMOVAX,DATAMOVDS,AX;置数据段寄存器MOVBX,OFFSETFEN;置数据指针MOVCX,MAX-FEN;置计数器初值DECCX;N个分数比较N-1次MOVAL,[BX];取第一个分数LOP:INCBX;调整指针CMPAL,[BX];与下一数比较JAENEXT;大于等于则转MOVAL,[BX];否则取下一数NEXT:LOOPLOP;计数器减一,;不为零转LOPMOVMAX,AL;存放最高分RET;返回DOSSTARTENDPCODEENDSENDSTART6、静态检查,上机调试选用指令尽量字节少,使其执行速度快易错处应重点查,如比较次数、转移条件等确信无错后方可上机调试

请问高手,神经网络模型与学习算法用什么语言编程比较好?JAVA 、C语言还是C++等。谢谢!

其实都相通的,个人建议用c++

解释一下“高级语言”,“高级语言程序设计”,“高级语言编程”三者的联系及区别。

高级语言,一类语言。高级语言程序设计,语言的设计,设计思想。高级语言编程,语言的编写,过程。

c语言编程中怎么用文件存储数据?具体一点,谢谢

主要用C语言的库函数,有open write read 或者是fopen fwrite fread这几个函数,迅速就是先open 然后write,具体函数的用法可自行百度,如果你是问存储数据的格式的话,自己定义结构体存储的方式是最方便直接的

VHDL语言编程用什么编译软件

疑似假用户022442

用VHDL语言编程~急~

楼主我也想要啊!考试题啊!如果有的话可以给我吗?谢谢啦!邮箱272207312@qq.com

如何用VHDL语言编程基本RS触发器……

根据真值表的描述结合VHDL编程思想很好实现你想要的程序;程序并不难,关键是你用心的程度;我猜你也许也是一名我的同行……自己的努力才是过硬的本领!!!!LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY RS_clk ISPORT( S,R,res :IN std_logic;Q,NOT_Q:out std_logic);END RS_clk;ARCHITECTURE behav OF RS_clk ISsignal sel1,sel2: std_logic;BEGINprocess(res,sel1,sel2)beginif res="0" then sel1<="0";sel2<="1";elsif (S="1" and R="0") then sel1<="1";sel2<="0";elsif (S="0" and R="1") then sel1<="0";sel2<="1";elsif (S="0" and R="0") then sel1<=sel1; sel2<=sel2;end if;Q<=sel1;NOT_Q<=sel2;end process;END behav;

一般8位PIC单片机使用C语言还是汇编语言编程,好像编译器不是支持所有类型的单片机

一般是简单的程序用汇编,复杂的程序用C,PIC编译器分PICC ,C18,C30PICC 10F,12F,16F PICC 也有18Fc18 18fc30 30f 24f 33f根据个人情况选择。

PIC单片机中用C语言编程时 ADCON1 是什么意思怎么用!

http://www.microchip.com/上下载英语资料,用google翻译翻译成中文

c语言编程怎样入门?

去狗狗搜索搜视频看,比如C语言程序设计

求C语言编程很长的程序100多行的

C语言写的21点程序!#include#include#include#defineNULL0intcompare(charsum1,charsum2){if(sum1>=sum2)return1;elsereturn0;}intbreakal(intsum){if(sum>21)return0;elsereturn1;}charchange(intcard){charch,n,m,x;switch(card){case1:ch="A";break;case10:{n=1+int(rand()/(RAND_MAX+1.0));if(n==1)ch="K";else{m=1+int(rand()/(RAND_MAX+1.0));if(m==1)ch="Q";else{x=1+int(rand()/(RAND_MAX+1.0));if(x==1)ch="J";}}break;}}//以上switch语句用于将数字转换成字符returnch;}voidgame(){inti,k,n;charhost_ch,player_ch,host_card[15],player_card[15];inthost_sum=0,player_sum=0;srand(time(NULL));for(i=0;i<2;i++){int(10.0*rand()/(RAND_MAX+1.0));player_card[i]=1+int(10.0*rand()/(RAND_MAX+1.0));player_ch=change(player_card[i]);if(player_card[i]>1&&player_card[i]<10)//输出玩家抽到的牌的点数printf("您抽到的第%d张牌是%d ",i+1,player_card[i]);elseif(player_card[i]==10)printf("您要到的第%d张牌是%c ",i+1,player_ch);elseprintf("您要到的第%d张牌是A ",i+1);if(player_ch=="A")//询问判断玩家的A的点值为1或11{printf("您有一张A,您想要A作1还是11? ");printf("1.1 ");printf("2.11 ");if(scanf("%d",&n)&&n==1)player_card[i]=1;elseplayer_card[i]=11;}host_card[i]=1+int(10.0*rand()/(RAND_MAX+1.0));host_ch=change(host_card[i]);if(host_ch=="A")//电脑自动判断庄家的A的点值为1或11{k=1+int(rand()/(RAND_MAX+1.0));if(k==1)host_card[i]=11;elsehost_card[i]=1;}player_sum+=player_card[i];//分别对庄家和玩家的点数求和host_sum+=host_card[i];}printf("您现在的总面值为%d ",player_sum);//输出玩家的总面值for(i=2;i<5;i++){if(host_sum<18&&host_sum>0)//电脑自动判断庄家是否要牌{host_card[i]=1+int(10.0*rand()/(RAND_MAX+1.0));host_ch=change(host_card[i]);if(host_ch=="A")//电脑自动判断庄家的A的点值为1或11{k=1+int(rand()/(RAND_MAX+1.0));if(k==1)host_card[i]=11;elsehost_card[i]=1;}host_sum+=host_card[i];}printf("您还要继续要牌吗? ");printf("1.要 ");printf("2.不要 ");scanf("%d",&k);if(k==1){{player_card[i]=1+int(10.0*rand()/(RAND_MAX+1.0));player_ch=change(player_card[i]);if(player_ch=="A")//询问判断玩家的A的点值为1或11{printf("您有一张A,您想要A作1还是11? ");printf("1.1 ");printf("2.11 ");if(scanf("%d",&n)&&n==1)player_card[i]=1;elseplayer_card[i]=11;printf("您要到的第%d张牌是A ",i+1);}elseprintf("您要到的第%d张牌是%d ",i+1,player_card[i]);player_sum+=player_card[i];if(i==4)printf("您手中已有5张牌,一决胜负的时刻到啦! ");if(breakal(host_sum)==0){if(breakal(player_sum)==0){printf("庄家爆牌了,您也爆牌了!庄家的牌面值是%d,您的牌面值是%d ",host_sum,player_sum);printf(" Youlose.. ");break;}}elseif(breakal(player_sum)==0){printf("您爆牌了!您的牌面值是%d Youlose.. ",player_sum);break;}}if(breakal(host_sum)==0){printf("庄家爆牌了!庄家的牌面值是%d ",host_sum);printf(" Congratulations!YOuwin! ");break;}}else{printf("庄家的牌面值是%d,您的牌面值是%d ",host_sum,player_sum);if(compare(host_sum,player_sum)==1)printf(" Youlose.. ");elseprintf(" Congratulations!Youwin! ");break;}}}intmain(){kaishi:intn;printf("欢迎进入21点游戏! ");printf("************************************ ");printf("1.开始游戏 ");printf("2.退出游戏 ");printf("************************************ ");if(scanf("%d",&n)&&n==1)game();elseif(n==2){printf("****************************** ");printf("游戏结束!祝您愉快! ");printf(" ");printf("再见! ");printf("****************************** ");return0;}gotokaishi;}

求助~单片机四路抢答器,要求C语言编程,液晶屏1602显示抢答成功者号码~~各位大侠帮帮小女吧

给了你程序 也得看的懂才能写出设计报告 如果你能看懂了 那么也基本上可以自己写程序了

食堂就餐餐费管理系统C语言编程

#include <stdio.h>#include <string.h>#include <stdlib.h>#include<malloc.h>typedef struct node1{ char name[10]; int xuehao; char nianling[10]; char xingbie[10]; char xueyuan[10]; int chanfei; node1 *next;}lnode1,*linklist1;typedef struct node2{ char mingcheng[10]; int jiage; node2 *next;}lnode2,*linklist2;void luru(linklist1 h,linklist2 k){int i,j; i=1;j=1; lnode1 *a; lnode2 *b; while(i!=0) {a=(linklist1)malloc(sizeof(lnode1));printf("请输入学号:"); scanf("%d",&a->xuehao); fflush(stdin); printf("请输入姓名:"); gets(a->name); fflush(stdin); printf("请输入年龄:"); gets(a->nianling); fflush(stdin); printf("请输入性别:"); gets(a->xingbie); fflush(stdin); printf("请输入学院:"); gets(a->xueyuan); printf("请输入已消费的餐费:"); scanf("%d",&a->chanfei); a->next=h->next; h->next=a;printf("是否继续 1 继续 0 停止 "); scanf("%d",&i); } while(j!=0) { b=(linklist2)malloc(sizeof(lnode2));printf("请输入餐名:"); fflush(stdin); gets(b->mingcheng); fflush(stdin); printf("请输入餐价:"); scanf("%d",&b->jiage); b->next=k->next; k->next=b; printf("是否继续 1 继续 0 停止 "); scanf("%d",&j); }}void put(linklist1 h){ linklist1 a; a=h->next; while(a!=NULL) { printf("%d",a->xuehao); a=a->next; } }void jiuchan(linklist1 h,linklist2 k){ char a[10];int b,d=1,c=1; printf("你要买什么:"); scanf("%s",a); lnode1 *p ; lnode2 *q; p=h->next; q=k->next; while(q!=NULL&&d==1) {printf("hao1"); if(strcmp(a,q->mingcheng)!=0) q=q->next; else { printf("请输入你的学号:"); scanf("%d",&b); while(p!=NULL&&c==1) { if (p->xuehao!=b) p=p->next; else { printf("共花费%d元 ",q->jiage); p->chanfei=p->chanfei+q->jiage; c=0; }}printf("若没有结果,则你的学号有误 "); d=0; } } printf("你输入的饭菜我们没有呀 ");} void chaxun(linklist1 h) { int i,d=1; printf("请输入你要查寻得学号: "); scanf("%d",&i); lnode1 *p; p=h->next; while(p!=NULL&&d==1) {printf("hao1"); if (p->xuehao!=i) { p=p->next; } else { printf("hao1"); printf("本月以消费 %d ",p->chanfei); d=0; } } printf("若没有结果,则你的学号有误 "); }void main(){ int i; linklist1 h;linklist2 k; h=(linklist1)malloc(sizeof(lnode1));h->next=NULL; k=(linklist2)malloc(sizeof(lnode2));k->next=NULL; for(i=0;i<100;i++) { printf("欢迎来到本食堂就餐: "); printf("请输入你的命令: "); printf("************1************录入信息 "); printf("************2************付费 "); printf("************3************查询 "); scanf("%d",&i); switch(i) { case 1:printf("请输入学生和食谱信息: "); luru( h, k); put(h); printf("hao"); break; case 2:printf("进入就餐系统 "); jiuchan(h,k);break; case 3:printf("欢迎进入餐费查询系统: "); chaxun(h);break; } }}没问题 我就不注释了 花了30分钟啊

在C语言编程中应该注意哪些问题

《高质量程序设计指南——C++/C语言》林锐写的推荐你看一遍,对编程细节讲得很多

C语言编程是什么

C语言是一种计算机程序设计语言。既有高级语言的特点,又具有汇编语言的特点。简单来说,就像我们平常说话用文字一样,我们日常用的软件,就是用好多个代码转变过来的。C语言编程就是输入各种语句、运算符等,使其运行,达到我们想要的结果。

c语言编程,根据分数划分成绩

你问的是什么问题啊?上面的代码上了个“}”,应该是这问题

这个分段函数的C语言编程怎么编

实验报告1、有一分段函数:设计一程序完成, 主控函数main()输入X的值并输出Y值.函数VAL计算Y的值。1.需求规格说明本题要求掌握C语言的数据类型,程序结构,基本输出输入,函数应用知识,问题的要求用到两个函数,要求利用主控函数main()输入X的值并输出Y值.并用函数VAL计算Y的值。2.设计2.1 设计思想用两个储存空间分别存放主函数和被调用函数,在主函数中控制输入输出,在调用函数中对数据进行处理. 本程序需要用到实型变量作为数据主要数据类型.2.2 设计表示本程序有两大模块,主函数MAIN()和被调用函数VAL()2.3实现注释程序开发环境为“Windows XP sp2中文版“为操作系统,运行环境turbo c/vc 6.0等等可以运行C语言程2.4详细设计 3.用户手册用户打开turbo c/vc 6.0的界面,启动本程序,然后按ALT+R运行程序,用户根据提示输入x值, 然后按回车键,最后用ALT+F5看运行结果。4.调试报告在调试过程中,如果在主函数中没有调用函数y=VAL(x),结果可以运行,但不能得到正确的结果.由此可知,我们在做主控函数时,一定要注意调用函数的重要性.5.源程序清单#includevoid main(){float VAL(float x);float x,y;clrscr();printf("input x=");scanf("%f",&x);y=VAL(x);printf("y= %f",y);}float VAL(float x){float y;if(x<1)y=x;else if(x>=1&&x<10)y=2*x-1;elsey=3*x-11;return(y);}

c语言编程分段函数。

实验报告1、有一分段函数:设计一程序完成, 主控函数main()输入X的值并输出Y值.函数VAL计算Y的值。1.需求规格说明本题要求掌握C语言的数据类型,程序结构,基本输出输入,函数应用知识,问题的要求用到两个函数,要求利用主控函数main()输入X的值并输出Y值.并用函数VAL计算Y的值。2.设计2.1 设计思想用两个储存空间分别存放主函数和被调用函数,在主函数中控制输入输出,在调用函数中对数据进行处理. 本程序需要用到实型变量作为数据主要数据类型.2.2 设计表示本程序有两大模块,主函数MAIN()和被调用函数VAL()2.3实现注释程序开发环境为“Windows XP sp2中文版“为操作系统,运行环境turbo c/vc 6.0等等可以运行C语言程2.4详细设计 3.用户手册用户打开turbo c/vc 6.0的界面,启动本程序,然后按ALT+R运行程序,用户根据提示输入x值, 然后按回车键,最后用ALT+F5看运行结果。4.调试报告在调试过程中,如果在主函数中没有调用函数y=VAL(x),结果可以运行,但不能得到正确的结果.由此可知,我们在做主控函数时,一定要注意调用函数的重要性.5.源程序清单#includevoid main(){float VAL(float x);float x,y;clrscr();printf("input x=");scanf("%f",&x);y=VAL(x);printf("y= %f",y);}float VAL(float x){float y;if(x<1)y=x;else if(x>=1&&x<10)y=2*x-1;elsey=3*x-11;return(y);}

怎么用c语言编程一个分段函数?

实验报告1、有一分段函数:设计一程序完成, 主控函数main()输入X的值并输出Y值.函数VAL计算Y的值。1.需求规格说明本题要求掌握C语言的数据类型,程序结构,基本输出输入,函数应用知识,问题的要求用到两个函数,要求利用主控函数main()输入X的值并输出Y值.并用函数VAL计算Y的值。2.设计2.1 设计思想用两个储存空间分别存放主函数和被调用函数,在主函数中控制输入输出,在调用函数中对数据进行处理. 本程序需要用到实型变量作为数据主要数据类型.2.2 设计表示本程序有两大模块,主函数MAIN()和被调用函数VAL()2.3实现注释程序开发环境为“Windows XP sp2中文版“为操作系统,运行环境turbo c/vc 6.0等等可以运行C语言程2.4详细设计 3.用户手册用户打开turbo c/vc 6.0的界面,启动本程序,然后按ALT+R运行程序,用户根据提示输入x值, 然后按回车键,最后用ALT+F5看运行结果。4.调试报告在调试过程中,如果在主函数中没有调用函数y=VAL(x),结果可以运行,但不能得到正确的结果.由此可知,我们在做主控函数时,一定要注意调用函数的重要性.5.源程序清单#includevoid main(){float VAL(float x);float x,y;clrscr();printf("input x=");scanf("%f",&x);y=VAL(x);printf("y= %f",y);}float VAL(float x){float y;if(x<1)y=x;else if(x>=1&&x<10)y=2*x-1;elsey=3*x-11;return(y);}

如何在电脑上安装c语言编程环境

C-Free

c语言编程什么意思

C语言是CombinedLanguage(组合语言)的中英混合简称。是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛,不仅仅是在软件开发上,而且各类科研都需要用到C语言,具体应用比如单片机以及嵌入式系统开发。C语言编程就是用C语言编写程序C语言较常用编译软件有Microsoft的VisualStudio,Win-TC……

c语言编程用什么软件好?

c语言编程用什么软件好他们有毫无办法但也盲目地起脚远shè一对一的

c语言编程软件有哪些?

编程软件和编译软件是完成不一样的,编程软件只要是可以打开你代码的工具就行,一般notepad++,source insight软件都比较好用。

用C语言编程学生信息管理系统!

/*【学生管理系统】*///modify#include<stdio.h>#include<string.h>#include<conio.h>#include<stdlib.h>#include<time.h>#define N 100typedef struct student{ int num; //学号,姓名,年龄,性别,出生年月,地址,电话, char name[18]; char sex; int age; int y,m; int tel; char add[30]; char mail[20]; int res; int stu;} SDate;int PassWord();void Menu();int Input_Choice(); //函数声明void Info_Paixu(SDate *student,int n);void Info_print(SDate *stu,int n);int Input_file(SDate *stu1);int Info_Input(SDate *stu,int count);void Info_Seach(SDate *stu,int n);void Info_Change(SDate *stu,int n,int Num);void Exit();void Print_file(SDate *stu,int n);int Info_Del(SDate *stu, int n, int del);void Info_Change(SDate *stu, int res, int choice);int Info_Add(SDate *stu, int count);int main(){ SDate stu[N]; int ret=0,res=0,choice=0; char ch;loop: ret=PassWord(); //登录函数 默认密码为admin if(!ret) { system("cls"); printf(" 密码错误或验证码错误! "); //默认密码:admin system("pause"); system("cls"); goto loop; } system("cls");e: Menu(); //菜单显示函数 printf("你的选择是? "); scanf("%d",&ret); switch(ret) { case 1: choice=Input_Choice(); //InputChoice()数据输入方式选择函数 if(choice==1) res=Info_Input(stu,res); //键盘输入函数 else if(choice==2) res=Input_file(stu); //文件读取函数 else { system("cls"); goto e; } break; case 2: if(res==0) { system("cls"); printf("没有数据输入,请重新选择! "); goto e; } else Info_print(stu,res); break; case 3: if(res==0||res==1) { system("cls"); printf("没有需要排序数据,请重新选择! "); goto e; } else Info_Paixu(stu,res); break; case 4: Info_Seach(stu,res); break; case 5: res=Info_Add(stu,res); break; case 6: Info_print(stu,res); printf("输入学号进行删除:"); scanf("%d",&choice); res=Info_Del(stu, res, choice); break; case 7: printf("请输入需要修改的学号:"); scanf("%d",&choice); Info_Change(stu,res,choice); break; case 8: Print_file(stu, res); break; case 9: Exit(); break; default : printf("您的选泽有误! "); } getchar(); printf("返回主菜单重新选择y/n?"); scanf("%c",&ch); if(ch=="Y"||ch=="y") { system("cls"); goto e; } return 0;}int yanzheng() //验证码模块{ int a,b,c,d; srand((unsigned)time(NULL)); a=rand()%100; b=rand()%100; c=a+b; printf(" ************************** "); printf(" 验证码: %d+%d=? ",a,b); printf(" 答案为:"); scanf("%d",&d); if(c==d) return 1; else return 0;}int PassWord() //登录模块{ int i=0; char passWord[18]; char p[]="admin"; //默认密码设置 char ch; printf(" 欢迎使用学生信息管理系统 "); printf(" "); printf(" 用户名:Admin "); printf(" "); printf(" 密码:"); while((ch=getch())!=13) { putchar("*"); passWord[i]=ch; i++; } passWord[i]=""; if(strcmp(p,passWord)==0) yanzheng(); else return 0;}void Menu() //菜单模块{ printf(" 欢迎使用学生信息管理系统 "); printf(" ******************************************* "); printf("** 1、学生信息录入 ** "); printf("** 2、学生信息浏览 ** "); printf("** 3、学生信息排序 ** "); printf("** 4、学生信息查找 ** "); printf("** 5、学生信息添加 ** "); printf("** 6、学生信息删除 ** "); printf("** 7、学生信息修改 ** "); printf("** 8、学生信息保存 ** "); printf("** 9、退出 ** "); printf("******************************************* ");}int Input_Choice() //数据输入方式选择{ int i; system("cls"); printf(" 欢迎使用学生信息管理系统 "); printf(" 1、键盘录入 "); printf(" 2、文件读取 "); printf(" 0、返回 "); printf(" 你的选择是?"); scanf("%d",&i); return i;}int Info_Input(SDate *stu,int count) //信息从键盘输入模块{ SDate *p; p=stu; system("cls"); printf("请输入第%d个学生学号(输入0结束): ",count+1); scanf("%d",&p->num); while(p->num!=0) { printf("请输入该学生姓名: "); scanf("%s",p->name); printf("请输入该学生年龄: "); scanf("%d",&p->age); getchar(); printf("请输入该学生性别: "); scanf("%c",&p->sex); printf("请输入该学生出生年月: "); scanf("%d%d",&p->y,&p->m); printf("请输入该学生住址: "); scanf("%s",p->add); printf("请输入该学生联系电话: "); scanf("%d",&p->tel); printf("请输入该学生E-Mail: "); scanf("%s",p->mail); count++; p++; system("cls"); printf("请输入第%d个学生学号(输入0结束): ",count); scanf("%d",&p->num); } return count;}int Input_file(SDate *stu1) //信息从文件输入模块{ int rin=0; SDate *p; FILE *fp; p=stu1; if((fp=fopen("StuInfo.txt","r"))==NULL) printf("该文件不存在! "); while(!feof(fp)) { fscanf(fp,"%d %s %c %d %d %d %d %s %s ",&p->num,p->name,&p->sex,&p->age,&p->y,&p->m,&p->tel,p->add,p->mail); p++; rin++; } fclose(fp); printf("文件读取成功! "); return rin;}void Info_print(SDate *stu,int n) //信息输出至屏幕模块{ SDate *p; if(n==0) //学号,姓名,年龄,性别,出生年月,地址,电话, printf("没有录入信息! "); else { printf(" 以下是%d个同学的信息 ",n); printf("学号 姓名 性别 年龄 出生年月 电话 地址 E-Mail "); for(p=stu; p<stu+n; p++) printf("%d %s %c %d %d-%d %d %s %s ",p->num,p->name,p->sex,p->age,p->y,p->m,p->tel,p->add,p->mail); }}void Print_file(SDate *stu,int n) //信息保存至文件模块{ FILE *fp; SDate *p; p=stu; if((fp=fopen("StuInfo.txt","a"))==NULL) printf("文件读取失败! "); else { for(; p<stu+n; p++) fprintf(fp,"%d %s %c %d %d %d %d %s %s ",p->num,p->name,p->sex,p->age,p->y,p->m,p->tel,p->add,p->mail); fclose(fp); printf(" 保存成功! "); }}void Info_Paixu(SDate *stu,int n) //学号排序模块{ int i,j; SDate p; for(i=0; i<n-1; i++) { for(j=0; j<n-1-i; j++) { if((stu[j].num)>(stu[j+1].num)) { p=stu[j]; stu[j]=stu[j+1]; stu[j+1]=p; } } } printf("排序完成! ");}void Exit() //退出模块{ printf("谢谢使用! "); exit(1);}void Info_Seach(SDate *stu,int n) //查询模块,目前仅支持学号或姓名的精准查询{ int num,choice; char name[10]; int flag=-1,i; system("cls"); printf("请输入查询方式: 1、学号查询 2、名字查询 "); printf("您的选择是?"); scanf("%d",&choice); if(choice==1) {lab1: printf("请输入需要查找的学号: "); scanf("%d",&num); for(i=0; i<n; i++) { if(num==stu[i].num) { flag=i; printf("%d %s %c %d %d-%d %d %s %s ",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].y,stu[i].m,stu[i].tel,stu[i].add,stu[i].mail); } } if(flag==-1) { printf("未找到!请重新选择 "); printf("1、返回继续查询 2、退出查询,返回主菜单 3、退出程序你的选择是?"); scanf("%d",&choice); if(choice==1) { system("cls"); goto lab1; } if(choice==2) goto end; else Exit(); } } else if(choice==2) {lab2: printf("请输入需要查找的姓名: "); scanf("%s",name); for(i=0; i<n; i++) if(strcmp(name,stu[i].name)==0) { flag=i; printf("%d %s %c %d %d-%d %d %s %s ",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].y,stu[i].m,stu[i].tel,stu[i].add,stu[i].mail); } if(flag==-1) { printf("您的输入有误!请重新选择 "); printf(" 1、返回继续查询 2、退出查询,返回主菜单 3、退出程序 你的选择是?"); scanf("%d",&choice); if(choice==1) { system("cls"); goto lab2; } if(choice==2) goto end; else Exit(); } }end: ;}void Info_Change(SDate *stu,int n,int Num) //信息修改模块{ int i; for(i=0; i<n; i++) if(stu[i].num==Num) { printf("请输入该学生姓名: "); scanf("%s",stu[i].name); printf("请输入该学生年龄: "); scanf("%d",&stu[i].age); getchar(); printf("请输入该学生性别: "); scanf("%c",&stu[i].sex); printf("请输入该学生出生年月: "); scanf("%d%d",&stu[i].y,&stu[i].m); printf("请输入该学生住址: "); scanf("%s",stu[i].add); printf("请输入该学生联系电话: "); scanf("%d",&stu[i].tel); printf("请输入该学生E-Mail: "); scanf("%s",stu[i].mail); printf("学号为%d的同学信息修改完成! ",Num); }}int Info_Del(SDate *stu, int n, int del) //信息删除模块{ int i,j; for(i=0; i<n; i++) if(stu[i].num==del) for(j=i; j<n-1; j++) stu[j]=stu[j+1]; n--; printf("删除成功! "); return n;}int Info_Add(SDate *stu,int count) //信息添加模块{ SDate *p; system("cls"); printf("当前共有%d个数据 ",count+1); p=stu+(count); printf("请输入第%d个学生学号(输入0结束): ",count+1); scanf("%d",&p->num); while(p->num!=0) { printf("请输入该学生姓名: "); scanf("%s",p->name); printf("请输入该学生年龄: "); scanf("%d",&p->age); getchar(); printf("请输入该学生性别: "); scanf("%c",&p->sex); printf("请输入该学生出生年月: "); scanf("%d%d",&p->y,&p->m); printf("请输入该学生住址: "); scanf("%s",p->add); printf("请输入该学生联系电话: "); scanf("%d",&p->tel); printf("请输入该学生E-Mail: "); scanf("%s",p->mail); count++; p++; system("cls"); printf("请输入第%d个学生学号(输入0结束): ",count+1); scanf("%d",&p->num); } return count;}

学生信息管理系统C语言编程

童鞋你这个要别人怎么回答你呢?就把一些要求写在上面,多自己想想吧.这些不难,你现在不想以后也要想,呵呵

C语言编程_幸运52猜数游戏__

我的心里都是你,⑧② ⑥ ③ ⑧ ⑤ · 匚 ō г n 一颦一笑,或者百般模样。

C语言编程题 从键盘上输入一年份,判断年份是否为闰年

你就给他两个if,然后进行嵌套,然后分别整除那两个数字就可以。

c语言编程:输入一个年份,判断其是否为闰年,并输出判断结果。

#include "stdio.h"int main(){ int year; printf("please input a year: "); scanf("%d",&year); if( ( year%400 == 0 ) || ( year%100 != 0) && ( year%4 == 0) ) printf("yes,it is a leap year! ");else printf("NO.It"s not a leap year");return 0;}}

c语言编程 编写求字符串长度的函数int strlen(char*s),在主函数中调用该函数输出指定字符串的长度

代码:#include&lt;stdio.h&gt;int mystrlen(char*str){int size=0;if(NULL==str)return-1;while(*str){size++;str++;}return size;}int main(int argc,const char*argv[]){char str[1024];printf("please input string:");gets(str);printf("mystrlen=%d ",mystrlen(str));return 0;}方法二、int Strlen(char*s){int i;for(i=0;*s!="";s++)//计算字符串串长(不用strlen)i++;return i;}//返回值为累加的iint main(){char a[100],*s;int n;printf("Enter a string:");scanf("%s",a);n=Strlen(a);printf("该字符串串长为:%d ",n);return 0;}扩展资料:C语言strlen()函数用法头文件:#include&lt;string.h&gt;strlen()函数用来计算字符串的长度,其原型为:unsigned int strlen(char*s);s为指定的字符串eg:#include&lt;stdio.h&gt;#include&lt;string.h&gt;int main(){char*str1="http://see.xidian.edu.cn/cpp/u/shipin/";char str2[100]="http://see.xidian.edu.cn/cpp/u/shipin_liming/";char str3[5]="12345";printf("strlen(str1)=%d,sizeof(str1)=%d ",strlen(str1),sizeof(str1));printf("strlen(str2)=%d,sizeof(str2)=%d ",strlen(str2),sizeof(str2));printf("strlen(str3)=%d,sizeof(str3)=%d ",strlen(str3),sizeof(str3));return 0;}运行结果:strlen(str1)=38,sizeof(str1)=4strlen(str1)=45,sizeof(str1)=100strlen(str1)=53,sizeof(str1)=5

C语言编程编译没问题 但进入不到主函数

没有良好的编程书写习惯。看着难受啊。

数据结构与算法作业:用C语言编程随机生成一个迷宫,然后找出从入口到出口的路线图。急!

#include <stdio.h>#include <stdlib.h>#include <time.h>#include <memory.h>/* define the size of maze */#define MAX_COL 6#define MAX_ROW 6#define TRUE 1#define FALSE 0#define IS_USABLE(a, b) (a >= 0 && a < MAX_ROW) && (b >= 0 && b < MAX_COL) && maze[a][b] && (!my_maze[a][b])static int maze[MAX_ROW][MAX_COL];static int target_maze[MAX_ROW][MAX_COL];static void init_maze();static int move_to(int i, int j, int (*maze)[MAX_COL], int count);static void print_maze(int (*maze)[MAX_COL]);static void init_maze(){ int i, j; srand((unsigned) time(NULL)); for (i = 0; i < MAX_ROW; i++) for(j = 0; j < MAX_COL; j++) { maze[i][j] = (int) (rand() % 2); } maze[1][0] = 1; /* start point */ maze[MAX_ROW - 1][MAX_COL - 2] = 1; /* end point */}static int move_to(int _i,int _j, int (*in_maze)[MAX_COL], int count) { int my_maze[MAX_ROW][MAX_COL], i, j; if (!in_maze) { for (i = 0; i < MAX_ROW; i++) for(j = 0; j < MAX_COL; j++) { my_maze[i][j] = 0; } } else { for (i = 0; i < MAX_ROW; i++) for(j = 0; j < MAX_COL; j++) { my_maze[i][j] = in_maze[i][j]; } } my_maze[_i][_j] = count; /* reach the end point */ if (_i == MAX_ROW - 1 && _j == MAX_COL - 2) { for (i = 0; i < MAX_ROW; i++) for(j = 0; j < MAX_COL; j++) { target_maze[i][j] = my_maze[i][j]; } return TRUE; } if (IS_USABLE(_i - 1, _j)) { if (move_to(_i - 1, _j, my_maze, count + 1)) return TRUE; } if (IS_USABLE(_i + 1, _j)) { if (move_to(_i + 1, _j, my_maze, count + 1)) return TRUE; } if (IS_USABLE(_i, _j - 1)) { if (move_to(_i, _j - 1, my_maze, count + 1)) return TRUE; } if (IS_USABLE(_i, _j + 1)) { if (move_to(_i, _j + 1, my_maze, count + 1)) return TRUE; } return FALSE;}static void print_maze(int (*maze)[MAX_COL]) { int i, j; for (i = 0; i < MAX_ROW; i++) { for(j = 0; j < MAX_COL; j++) { if (maze[i][j] != 0) printf("%d ", maze[i][j]); else printf(" "); } printf(" "); }}int main(){ while(1) { init_maze(); printf("Out put the maze : "); print_maze(maze); if (move_to(1, 0, NULL, 1)) { printf("Out put the path : "); print_maze(target_maze); break; } else { printf("No way! "); } }}VC60下正常运行

有哪位大仙能够帮帮我这道C语言编程题!

/*学生通讯录管理系统:1.学生信息包括:学号、姓名、性别、生日、年龄和平均分;2.用链表实现;3.可以浏览学生信息,插入学生信息(在任意位置插入学生信息),新增学生信息(在链表尾部新增学生信息),删除学生信息,查找学生信息和修改学生信息.*/#include<stdio.h> #include<stdlib.h> #include<string.h> #include<malloc.h>typedef struct student_info { char stu_name[15]; long stu_num; char stu_sex[10]; char Birthday[30]; char age[30]; char Gpa[15]; struct student_info *next; }Student; Student *head; /*为全局变量*/Student *load() /*载入函数,从文件中读数据建立链表*/ { FILE *fp; Student *head_1,*p,*q; head_1=NULL; fp=fopen("student","rb"); if(fp==NULL) { fp=fopen("student","wb"); fclose(fp); return head_1; } p=(Student*)malloc(sizeof(Student)); if(fread(p,sizeof(Student),1,fp)!=1) return head_1; head_1=p; while(!feof(fp)) { q=p; p=(Student*)malloc(sizeof(Student)); fread(p,sizeof(Student),1,fp); q->next=p; } q->next=NULL; free(p); fclose(fp); return head_1; } int save() /*将修改后的链表中的信息存进文件中*/{ FILE *fp; fp=fopen("student","wb"); while(head!=NULL) { fwrite(head,sizeof(Student),1,fp); head=head->next; } fclose(fp); return 0; } int Add_student() /*添加学生信息函数 */{ Student *p,*q; Student *stud1; char flag="y"; stud1=(Student*)malloc(sizeof(Student)); while(flag=="y"||flag=="Y") { q=p=head; printf("请输入要添加的学生的姓名: "); scanf("%s",stud1->stu_name); printf("请输入要添加的学生的学号(最多8位数): "); scanf("%ld",&stud1->stu_num); printf("请输入要添加的学生的性别: "); scanf("%s",&stud1->stu_sex); printf("请输入要添加的学生的生日: "); scanf("%s",&stud1->Birthday); printf("请输入要添加的学生的年龄: "); scanf("%s",&stud1->age); printf("请输入要添加的学生的平均分: "); scanf("%s",&stud1->Gpa); stud1->next=NULL; fflush(stdin); if(head==NULL)head=stud1; else { while(p->stu_num<stud1->stu_num&&p->next!=NULL) {q=p;p=p->next;} if(p->stu_num>stud1->stu_num) if(p==head){stud1->next=head;head=stud1;} else {q->next=stud1;stud1->next=p;} else p->next=stud1; } stud1=(Student*)malloc(sizeof(Student)); printf("添加结束,是否继续添加,"y"或"Y"继续,否者退出! "); flag=getchar(); fflush(stdin); } free(stud1); system("cls"); return 0; } int del_stu() /*按学号删除学生信息函数*/ { Student *p,*q; long stu_num; char flag="y"; int tage=0; while(flag=="y"||flag=="Y") { p=head; printf(" input the delete student number! "); scanf("%d",&stu_num); if(head==NULL){printf("不存在学生信息! ");return 0;} while(p!=NULL) { if(p->stu_num==stu_num) { tage=1; if(p==head)head=head->next; else q->next=p->next; free(p);break; } q=p;p=p->next; } if(tage==0) printf("要删除的学生信息不存在! "); tage=0; printf("删除结束,是否继续删除操作:y或Y继续,否者结束! "); fflush(stdin); scanf("%c",&flag); } system("cls"); return 0; } int find_student() /*按学号查找学生信息*/{ Student *p; char flag="y"; long stu_num; int tage=0; /*1作为找到学生的标志,0为没有找到*/ while(flag=="y"||flag=="Y") { printf("input the finding student number! "); scanf("%d",&stu_num); p=head; if(head==NULL){printf("不存在学生信息! ");return 0;} else while(p!=NULL) if(p->stu_num==stu_num) { tage=1; printf("你要查找的学生信息如下: "); printf("%s %ld %s %s %s %s ",p->stu_name,p->stu_num,p->stu_sex,p->Birthday,p->age,p->Gpa); break; } else p=p->next; if(tage==0)printf("无该学生信息! "); tage=0; printf("查找结束,是否继续查找操作:y或Y继续,否者退出! "); fflush(stdin); scanf("%c",&flag); } return 0; } int ame_student() /*修改学生信息*/ { Student *p; long stu_num; int tage=0; int chiose; char flag="y"; printf("input the change student number! "); scanf("%ld",&stu_num); p=head; while(flag=="y"||flag=="Y") { if(head==NULL){printf("无学生信息存在! ");return 0;} while(p!=NULL) { if(p->stu_num==stu_num) { tage=1; printf("请选要修改的编号! "); printf("1:<修改姓名> "); printf("2:<修改学号> "); printf("3:<修改性别> "); printf("4:<修改生日> "); printf("5:<修改年龄> "); printf("6:<修改平均分> "); printf("请输入1-6!else非法! "); scanf("%d",&chiose); switch(chiose) { case 1: { char stu_name[15]; printf("请输入修改的名字! "); scanf("%s",stu_name); strcpy(p->stu_name,stu_name); break; } case 2: { long stu_num; printf("请输入修改的学号! "); scanf("%ld",&stu_num); p->stu_num=stu_num; break; } case 3: { char stu_sex[10]; printf("请输入修改的性别! "); scanf("%s",&stu_sex); strcpy(p->stu_sex,stu_sex); break; } case 4: { char stu_college[30]; printf("请输入修改的生日! "); scanf("%s",stu_college); strcpy(p->Birthday,stu_college); break; } case 5: { char stu_profe[30]; printf("请输入修改的年龄! "); scanf("%s",stu_profe); strcpy(p->age,stu_profe); break; } case 6: { char stu_tel[15]; printf("请输入修改的平均分! "); scanf("%s",stu_tel); strcpy(p->Gpa,stu_tel); break; } default: {printf("无此操作! ");break;} }break; } else p=p->next; } if(tage==0)printf("无该学生信息! "); tage=0; printf("修改结束,是否继续修改该学生信息操作:y或Y继续,否者退出! "); fflush(stdin); scanf("%c",&flag); } fflush(stdin); system("cls"); return 0; } int print_student() /*输出学生信息函数*/{ Student *p; p=head; if(head==NULL){printf("无学生信息! ");return 0;} printf("姓名 学号 性别 生日 年龄 平均分 "); printf("=========================================================== "); while(p!=NULL) { printf("%s %ld %s %s %s %s ",p->stu_name,p->stu_num,p->stu_sex,p->Birthday,p->age,p->Gpa); p=p->next; } printf("=========================================================== "); printf("输出结束! "); return 0; } int main() /*主函数*/{ int tage; head=load(); while(1) { printf("44444欢迎进入学生管理系统!44444 "); printf(" 1: 添加学生信息 "); printf(" 2: 删除学生信息 "); printf(" 3: 查找学生信息 "); printf(" 4: 修改学生信息 "); printf(" 5: 输出学生信息 "); printf(" 6: 退出程序 "); printf("4444444444444444444444444444444 "); putchar(10); printf("请输入1-6,其他输入非法! "); scanf("%d",&tage); switch(tage) { case 1:Add_student();break; case 2:del_stu();break; case 3:find_student();break; case 4:ame_student();break; case 5:print_student();break; case 6:save();exit(0);break; default:printf("无此操作 ");break; } } }

c语言编程所用到的全部英语单词?

太多了,兄弟,有while switch for return free if scanf printf gets puts getc putc case define int float double char struct …

c语言编程

#include <string.h>int _tmain(int argc, _TCHAR* argv[]){ char sourceStr[1000] = { }; int len = 0; int i = 0, j = 0; int temp = 0; printf("Please Input The String Which You Want To Encryption: "); gets_s(sourceStr); printf(" "); printf("The Input String is: "); puts(sourceStr); printf(" "); printf("The length of the string is: "); len = strlen(sourceStr); printf("%d ",len); printf(" "); for (;i <= len ;i++) { temp = (int)sourceStr[i]; temp +=3; sourceStr[i] = temp; } printf("After Encryption is: "); for (;j < len;j++) { printf("%c",sourceStr[j]); } printf(" ");return 0;}

C语言编程,题:输入M个不同的字符,从中选出N个字符,输出所有可能的方案。M,N由键盘输入.xie

是随机出现吗???组合问题??

C语言编程,要将100元钱换成1元,2元,5元的零钱.每种钱数大于0,而且为5的倍数,编程计算有多少种换法?

#include<stdio.h>void main(){ int a,b,c,count=0; for(a=5;a<100;a+=5) for(b=5;b<50;b+=5) if((100-a-2*b)%5==0 && ((100-a-2*b)/5)%5==0) count++; printf("%d ",count);}