版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、陕西理工学院课程设计第 页 引言当今,数字信号处理技术正飞速发展,它不但自成一门学科,更是以不同的形式渗透到其他学科。它与国民经济息息相关,与国防建设紧密相连;它影响和改变着我们的生产、生活方式,因此受到人们普遍的关注。数字化、智能化和网络化是当代信息技术发展的大趋势,而数字化是智能化和网络化的基础。数字滤波技术是数字信号分析、处理技术的重要分支。无论是信号的获取、传输,还是信号的处理和交换都离不开滤波技术,它对于信号安全可靠和有效灵活地传输是至关重要的。在所有的电子系统中,使用最多技术最复杂的要算数字滤波器了。数字滤波器的优劣直接决定产品的优劣。因此,在教学中,我们也要学会低通滤波器的设计1
2、 IIR数字滤波器1.1数字滤波器的概念滤波器是指用来对输入信号进行滤波的硬件和软件。数字滤波器是对数字信号实现滤波的线性时不变系统。数字滤波器可以理解为是一个计算程序或算法将代表输入信号的数字时间序列转化为代表输出信号的数字时间序列并在转化过程中使信号按预定的形式变化。数字滤波实质上是一种运算过程实现对信号运算处理。数字滤波器和模拟滤波器相比因为信号的形式和实现滤波的方法不同数字滤波器具有比模拟滤波器精度高、稳定、体积小、重量轻、灵活、不要求阻抗匹配等优点。输入数字信号数字序列通过特定的运算转变为输出的数字序列因此数字滤波器本质上是一个完成特定运算的数字计算过程也可以理解为是一台计算机。描述
3、离散系统输出与输入关系的卷积和差分方程只是给数字信滤波器提供运算规则使其按照这个规则完成对输入数据的处理。1.2 IIR数字滤波器结构 IIR数字滤波器的系统函数可以写成封闭函数的形式。IIR数字滤波器采用递归型结构,即结构上带有反馈环路。运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。由于运算中的舍入处理,使误差不断累积,有时会产生微弱的寄生振荡。IIR数字滤波器在计上可以借助成熟的模拟滤波器的成果,如巴特沃斯、契比雪夫和椭圆滤波器等,有现成的设计数据或图表可查,其设计工作量比较小,对计算工具的要求不高。在设计一个IIR
4、数字滤波器时,我们根据指标先写出模拟滤波器的公式,然后通过一定的变换,将模拟滤波器的公式转换成数字滤波器的公式。1.3 数字低通滤波器的设计原理数字滤波器(Digital Filter,简称DF)是指输入、输出均为数字信号,通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分的器件。DF根据其实现的网络结构或者从单位脉冲响应函数的时域特性分类,可分为两种,即无限脉冲响应(IIR)滤波器和有限脉冲响应(FIR)滤波器。数字滤波器分为有限脉冲响应数字滤波器(FIR)和无限脉冲响应数字滤波器(IIR)。我们可以借助于模拟滤波器的理论和设计方法来设计IIR滤波器的方法,即根据给定的滤
5、波器技术指标,确定滤波器的系统函数,使其尽可能地逼近滤波器的指标,并用MATLAB进行仿真。数字滤波器的最通用的方法是借助于模拟滤波器的设计方法。模拟滤波器设计已经有了相当成熟的技术和方法,有完整的设计公式,还有比较完整的图表可以查询,因此设计数字滤波器可以充分利用这些丰富的资源来进行。 数字滤波器是指输入、输出都是离散时间信号,通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分的器件。数字滤波器在数字信号处理中起着非常重要的作用,在信号的过滤、检测与参数的估计等方面,是使用最为广泛的一种线性系统。 为了保证转换后H(z)稳定,必须满足以下条件:第一:因果稳定的模拟滤波器转
6、换成数字滤波器,仍是因果稳定的,s平面的左半平面映射z平面的单位圆内部;第二:数字滤波器的频率响应模仿模拟滤波器的频响,s平面的虚轴映射z平面的单位圆,相应的频率之间成线性关系。运用数字滤波器的方法有两种:一是采用计算机软件进行,就是把所要完成的工作通过程序让计算机来实现;二是设计专用的数字处理硬件。这个地方主要用到的就是第一种方法。即是用Matlab提供的信号处理工具箱来实现数字滤波器。Matlab信号处理程序提供了丰富的设计方法,可以使得繁琐的程序设计简化成函数的调用,只要以正确的指标参数调用函数,就可以正确快捷地得到设计结果.它们的系统函数分别为: (1.1) (1.2)1.1式中H(z
7、)称为N阶IIR数字滤波器系统函数;1.2式中H(z)称为N-1阶FIR数字滤波器系统函数。典型的模拟低通滤波器的指标如下:分别为通带频率和阻带频率,分别为通带和阻带容限(峰波纹值)。在通带内要求,有时指标由通带最大衰减和阻带最小衰减给出,定义如下: 和第二种常用指标是用参数和A表示通带和阻带要求,如图1.1所示图1.1 二者之间的关系为:和,根据这几个参数可导出另外两个参数d,k,分别称为判别因子和选择性因子。 BUTTERWORTH低通滤波器:幅度平方函数定义为,N为滤波器阶数,为截止频率。当时,有,为3DB带宽。BUTTERWORTH低通滤波器系统函数有以下形式:由模拟滤波器设计IIR数
8、字滤波器,必须建立好s平面和z平面的映射关系。使模拟系统函数变换成数字滤波器的系统函数,通常采用冲激相应不变法和双线性变换法。冲激相应不变法存在频谱混叠现象,双线性变换法消除了这一线象,在IIR数字滤波器的设计中得到了更广泛的应用。 s平面和Z平面的映射关系为,将和待入数字频率和等效的模拟频率之间的映射关系:,由于二者不是线性关系,所以称为预畸变。1.4 方案选择一般滤波器的设计有两种方法:直接法或者间接法,间接法是通过模拟滤波器的设计方法进行的,设计步骤:先设计过渡模拟滤波器得到系统函然后将按照某种方法装换成数字滤波器的系统函数H(z)。由于这种方法已经比较成熟所以我采用种种方法设计:利用巴
9、特沃斯设计数字低通滤波器。成熟的模拟滤波器设计方法主要有脉冲响应不变法和双线性变换法。2.设计结果及分析2.1用脉冲相应不变法设计IIR数字滤波器脉冲响应不变法使得数字滤波器的单位脉冲响应完全模仿模拟滤波器的单位冲激响应也就是时域逼近良好而且模拟频率和数字频率之间呈线性关系=T。因而,一个线性相位的模拟滤波器。脉冲响应不变法的最大缺点是有频率响应的混叠效应。所以脉冲响应不变法只适用于限带的模拟滤波器(例如衰减特性很好的低通或带通滤波器),而且高频衰减越快,混叠效应越小。至于高通和带阻滤波器,由于它们在高频部分不衰减因此将完全混淆在低频响应中。如果要对高通和带阻滤波器采用脉冲响应不变法就必须先对
10、高通和带阻滤波器加保护滤波器,滤掉高于折叠频率以上的频率然后再使用脉冲响应不变法转换为数字滤波器。当然这样会进一步增加设计复杂性和滤波器的阶数。程序设计:fp=2100;fs=8000; Fs=20000;Rp=0.5;Rs=30;T=1/Fs; %设计指标W1p=fp/Fs*2;W1s=fs/Fs*2;%求归一化频率N,Wn=buttord(W1p,W1s,Rp,Rs,s);%确定butterworth的最小介数N和频率参数Wnz,p,k=buttap(N); %设计模拟低通原型的零极点增益参数bp,ap=zp2tf(z,p,k); %将零极点增益转换成分子分母参数bs,as=lp2lp(b
11、p,ap,Wn*pi*Fs);%将低通原型转换为模拟低通bz,az=impinvar(bs,as,Fs); %用脉冲响应不变法进行模数变换sys=tf(bz,az,T); %给出传输函数H(Z)H,W=freqz(bz,az,512,Fs); %生成频率响应参数subplot(2,1,1);plot(W,20*log10(abs(H); %绘制幅频响应grid on; %加坐标网格xlabel(频率/Hz);ylabel(振幅/dB);subplot(2,1,2);plot(W,abs(H); grid on;xlabel(频率/Hz);ylabel(振幅/H);运行结果:N =4bz = 0
12、.0000 0.0999 0.1914 0.0252az= 1.0000 -1.4336 1.0984 -0.4115 0.0627程序图如图2.1:图2.1 脉冲响应不变法2.2.用双线性变换法设计IIR数字滤波器双线性变换的这个特点是靠频率的严重非线性关系而得到的由于这种频率之间的非线性变换关系就产生了新的问题。首先,一个线性相位的模拟滤波器经双线性变换后得到非线性相位的数字滤器,不再保持原有的线性相位了。其次,这种非线性关系要求模拟滤波器的幅频响应必须是分段常数型的,即某一频率段的幅频响应近似等于某一常数,一般典型的低通、高通、带通、带阻型滤波器的响应特性不然变换产生的数字滤波器幅频响应
13、相对于原模拟滤波器的幅频响应会有畸变。2.2.1用双线性变换法设计椭圆数字低通滤波器程序设计:fs=20000;wp=2*pi*2100/fs;ws=2*pi*8000/fs;Rp=0.5;Rs=30;Ts=1/fs;Wp=2/Ts*tan(wp/2);Ws=2/Ts*tan(ws/2); %按频率转换公式进行转换N,Wn=ellipord(Wp,Ws,Rp,Rs,s); %计算模拟滤波器的最小阶数z,p,k=ellipap(N,Rp,Rs);%设计模拟原型滤波器Bap,Aap=zp2tf(z,p,k); %零点极点增益形式转换为传递函数形式b,a=lp2lp(Bap,Aap,Wn); %低通
14、转换为低通滤波器的频率转化bz,az=bilinear(b,a,fs); %运用双线性变换法得到数字滤波器传递函数H,f=freqz(bz,az,512,fs);subplot(2,1,1);plot(f,20*log10(abs(H);title(N=2 频率响应);grid on;xlabel(频率/Hz);ylabel(振幅/dB);subplot(2,1,2);plot(f,abs(H); grid on;xlabel(频率/Hz);Ylabel(振幅/H);运行结果N=2bz= 0.1213 0.1662 0.1213az= 1.0000 -0.9889 0.4218图2.2.1双线
15、性变换法的椭圆数字低通滤波器2.2.2.切比雪夫设计数字低通滤波器设计Chebyshev I型和Chebyshev II型数字低通滤波器,要求通带边界频率fp=2.1kHZ通带最大衰减Rp=0.5dB,阻带边界频率fs=8kH,阻带最小衰减Rs=30dB,采样频率为Fs=20kHZ。Chebyshev I型的M程序如下:Fs=20000; %抽样频率20KHzFlp=2100;Fls=8000;Wp=2*Flp/Fs; %归一化的通带截止频率Ws=2*Fls/Fs; %归一化的阻带截止频率Rp=0.5; %通带最大衰减单位dBRs=30; %阻带最小衰减单位dBN,Wn=cheb1ord(Wp
16、,Ws,Rp,Rs); %返回最小阶数和截止频率b,a=cheby1(N,Rp,Wn); %返回H(z)的分子分母系数hw,w=freqz(b,a);subplot(2,1,1);plot(w/pi,20*log10(abs(hw);grid on;xlabel(/);ylabel(幅度dB)title(切比雪夫I型幅频响应);subplot(2,1,2);plot(w/pi,abs(hw);grid on;xlabel(/);ylabel(幅度H);程序结果:N=2b= 0.1007 0.2014 0.1007a= 1.0000 -0.9872 0.4140程序图形:图2.2.2.1 双线性
17、变换发的切比雪夫I数字低通滤波Chebyshev II的程序如下:Fs=20000; %抽样频率20KHz Flp=2100; Fls=8000; Wp=2*Flp/Fs; %归一化的通带截止频率 Ws=2*Fls/Fs; %归一化的阻带截止频率 Rp=0.5; %通带最大衰减单位dB Rs=30; %阻带最小衰减单位dB N,Wn=cheb2ord(Wp,Ws,Rp,Rs); %返回最小阶数和截止频率 b,a=cheby2(N,Rs,Wn); %返回H(z)的分子分母系数 hw,w=freqz(b,a); subplot(2,1,1); plot(w/pi,20*log10(abs(hw);
18、grid on; xlabel(/);ylabel(幅度dB); title(切比雪夫II型幅频响应); subplot(2,1,2);plot(w/pi,abs(hw); grid on; xlabel(/);ylabel(幅度H); 运行结果 N=2 b= 0.2357 0.4241 0.2357 a= 1.0000 -0.2996 0.1950程序响应图2.2.2.2:图2.2.2.2 双线性变换发的切比雪II夫数字低通滤波从频率响应图中可以看出:巴特沃斯滤波器具有单调下降的幅频特性通带内平滑;chebyshev I型滤波器的幅频特性在通带内有波动阻带内单调;chebyshev II型滤
19、波器的幅频特性在阻带内有波动通带内单调;椭圆滤波器的选择性相对前三种是最好的。下降斜度比较大,通带和阻带内均为等波纹同样的性能指标,椭圆滤波器可以最低的阶数来实现。这样根据不同的要求可以选用不同类滤波器。3.总结(1)在实验过程MATLAB函数命令有数字滤波器函数N,Wn=buttord(Wp,Ws,Rp,Rs)、模拟滤波器函数N,Wn=buttord(Wp,Ws,Rp,Rs,s)。式中Wp,Ws分别上通带和阻带的截止频率,实际上它们是归一化频率,其值在01之间,Rp,Rs分别是通带和阻带的衰减,单位为dB。N是求出的相应低通滤波器的阶次,Wn是求出的3dB频率,第二个式子的单位为rad/s,
20、因此,它们实际上是频率。用来设计模拟低通原型滤波器,其调用格式是z,p,k=buttap(N) N是欲设计的低通原型滤波器的阶次,z、p和k分别是设计出的的极点、零点及增益。以下4个文件用来将模拟低通原型滤波器分别转换为低通、高通、带通、及带阻滤波器。其调用格式分别是:(1)B,A=lp2lp(b,a,Wo) 或 B,A=lp2hp(b,a,Wo)(2)B,A=lp2bp(b,a,Wo,Bw) 或 B,A=lp2bs(b,a,Wo,Bw)式中b,a分别是模拟低通原型滤波器有分子、分母多项式的系数向量,B,A分别是转换后的有分子、分母多项式的系数向量;在格式(1)中,Wo是低通或高通滤波器的截止
21、频率;在格式(2)中Wo是带通或带阻滤波器的中心频率,Bw是其带宽。实现双线性变换,即由模拟滤波器得到数字滤波器。其调用格式是 Bz,Az=bilinear(B,A,Fs)式中B、A分别是的分子、分母多项式的系数向量;Bz、Az分别是的分子、分母多项式的系数向量,Fs是抽样频率。致谢在这次课程设计的撰写过程中,我得到了许多人的帮助。首先我要感谢我的老师在课程设计上给予我的指导、提供给我的支持和帮助,这是我能顺利完成这次报告的主要原因,更重要的是老师帮我解决了许多技术上的难题,让我能把设计做得更加完善。在此期间,我不仅学到了许多新的知识,而且也开阔了视野,提高了自己的设计能力。其次,我要感谢帮助
22、过我的同学,他们也为我解决了不少我不太明白的设计商的难题。同时也感谢学院为我提供良好的做课程设计的环境。最后再一次感谢所有在设计中曾经帮助过我的良师益友和同学!参考文献1.罗军辉等7.0在数字信号处理中的应用。北京:机械工业出版社, ,2004,P109-114.2.邵毅、张明玉等基于Matlab的IIR数字滤波器【J】, 2009年02期,P36-44.3.刘春:Matlab在数字滤波器设计中的应用【J】2006年05期,P153-166.4.柴政、任海平:关于数字滤波器设计方式的探讨【J】;通信电源技术;2007年05期,P113-156.5.刘泉.数字信号处理原理与实现M第二版.北京:高
23、等教育出版社,2008,P189-200.附录资料:不需要的可以自行删除c语言典型问题处理方法小结循环问题(1)、数论问题1、求素数 for(i=2;i1,如果它仅有平凡约数1和a,则我们称a为素数(或质数)。整数 1 被称为基数,它既不是质数也不是合数。整数 0 和所有负整数既不是素数,也不是合数。 2、求最大公约数和最小公倍数a、 if(ab) t=a; a=b; b=t; for(i=a;i=1;i-) if(a%i=0&b%i=0) break; printf(largest common divisor:%dn,i); printf(least common multiple:%dn
24、,(a*b)/is);b、辗转相除法求解 a1=a; b1=b; while(a%b!=0) t=a%b; a=b; b=t; printf(largest common divisor:%dnleast common multiple:%d,b,a1*b1/b);3、求完数 一个数如果恰好等于它的因子之和,这个数就称为“完数”。 例如:6的因子为1、2、3,而6123,因此6是“完数”。for(a=1;a=1000;a+) s=0; for(i=1;i=a) break; if(s=a) printf(%dt,a);注意S=0所放的位置 4、分解质因数 将一个整数写成几个质因数的连乘积,如:
25、 输入36,则程序输出36=2*2*3*3 。解一、看似简单,但要自己完整地写出来还真不容易!竟然还动用了goto语句,正好可以熟悉一下goto语句的用法!main() int a,z,i; clrscr(); scanf(%d,&a);判断下一个数开始有要重新从2开始了。所以用loop语句回到for语句,这是for语句仍从2初始化。从2开始的原则不变,变的是a的值。 loop: for(z=2;z=a;z+)判断是否为质数for(i=2;i=z;i+) if(z%i=0) break;判断是否为a的质因数 if(z=i) if(a%z=0) k+; if(k=1) printf(%d=%d,
26、a1,z);用计数器来解决每行输入不同的问题。 else printf(*%d,z); a/=z; goto loop; 解二:main() int n, k=2, isfirst=1; printf(Input n=); scanf(%d,&n); while(k=n) if(n%k=0) if(isfirst) printf(%d=%d, n, k); isfirst=0; else printf(*%d,k); n/=k; else k+; printf(n);5、从键盘输入两个整数,输出这两个整数的商的小数点后所有1000位整数 for(i=1;i=2;i-) if(fm%i=0&fz
27、%i=0) fz/=i; fm/=i; z=fz/fm; fzx=fz%fm; if(fzx=0) printf(%d%d/%d-%d%d/%d=%dn,z1,fz1,fm1,z2,fz2,fm2,z); else if(z=0) printf(%d%d/%d-%d%d/%d=%d/%dn,z1,fz1,fm1,z2,fz2,fm2,fzx,fm); else printf(%d%d/%d-%d%d/%d=%d%d/%dn,z1,fz1,fm1,z2,fz2,fm2,z,fzx,fm);(2)近似问题1、书P122习题4-6注意千万不要忘记添加#include “math.h”#include
28、 math.hmain() float x,j=1,k,s,so; int n; scanf(%f,&x); s=x; so=x+1; for(n=1;fabs(s-so)1e-6;n+) for(k=1;k1e-6) x=(x1+x2)/2; f=x*x*x+4*x*x-10;可以用/*if(f*f10) x2=x; else x1=x; printf(%fn,x);(3)枚举法(4)数列问题二、数组问题(1)排序问题1、从小到大排序main() int a10,i,j,t; for(i=0;i10;i+) scanf(%d,&ai); for(i=1;i10;i+) for(j=0;jaj
29、+1) t=aj+1;aj+1=aj;aj=t; for(i=0;i10;i+) printf(%d ,ai); printf(n);注意排序问题:1、须迅速,熟练,无差错经常插入在程序中间2、现使用最大数下沉冒泡法还可以使用最小数上浮冒泡法3、j控制前面一个数和后面一个数一一比较。由于是最大数下沉,i+1后j仍要从0开始。4、i控制这样的操作一共要做多少次5、注意i j的控制次数2、从大到小排序main()现使用最大数上浮冒泡法还可使用最小数下沉冒泡法 int a10,i,j,t; for(i=0;i10;i+) scanf(%d,&ai); for(i=1;i=i;j-) if(ajaj-
30、1) t=aj-1; aj-1=aj; aj=t; for(i=0;i10;i+) printf(%d ,ai);(2)二维数组三、字符或字符串输入输出问题(1)字符打印1、打印*此类题的溯源为书P122 4.11(1),其他题都是它的拓展 for (i=1;i=n;i+) 一共要输出的行数 for(j=1;j=i;j+) 每行要打印的*数 printf(*); printf(n); a、*解题要点:此类题关键在于找到每行要打印的个数和行数的关系。此题j=i j=n-i+1b、* for(i=1;i=n;i+) 一共要输出的行数 for(j=1;j=n-i;j+) 控制空格数 printf(
31、); for(k=1;k=i;k+) 每行要打印的*数 printf(*); printf(n); c、 * * *解题要点:在出现空格的时候,在找到每行要打印的*个数和行数的关系后,还应找到空格和行数的关系,分不同的参数进行循环。此题k=i j=n-i j=i-1k=n-i+1d、* * for(i=1;i=n;i+) for(j=1;j=n-i;j+) printf( ); for(k=1;k=2*i-1;k+) printf(*); printf(n); * *e、 * * * for(i=1;i=n-1;i+) for(j=1;j=i;j+) printf( ); for(k=1;k=
32、2*(n-1-i)+1;k+) printf(*); printf(n); for(i=1;i=n;i+) for(j=1;j=n-i;j+) printf( ); for(k=1;k=2*i-1;k+) printf(*); printf(n); * * * * * *2、打印9*9乘法表解题要点:注意寻找行与列的规律。i*ji代表列j代表行for(i=1;i=9;i+) for(j=1;j=9;j+) printf(%-3d ,i*j); 注意输出格式的控制 printf(n); 3、九九乘法表1 2 3 4 5 6 7 8 92 4 6 8 10 12 14 16 183 6 9 12
33、15 18 21 24 27 9 18 27 36 45 54 63 72 814、杨晖三角形11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 11 6 15 20 15 6 1(2)字符串打印问题for(i=1;i=7;i+) ai1=1; aii=1; for(i=3;i=7;i+) for(j=2;j=i-1;j+) aij=ai-1j-1+ai-1j; gets(a); puts(a); for(i=1;i0;j-) aj=aj-1; a0=t; for(k=0;k=a&ai=z) ai-=32; puts (a);3、逆序输出gets (a); c=strle
34、n(a); for(i=0;i=0;i-) 蓝色部分可以简写为绿色部分coutai-1;4、如输入:ab1 3,;z 输出:ab1注意点:1、= =2、while语句的使用处体会3、全面考虑问题 3,;zgets(a); while(a0= ) for(i=0;ai!=0;i+) ai=ai+1; for(i=0;ai!=0;i+)if(ai= &ai+1!= ) printf(n); else if(ai= &ai+1= ) for(k=i;ak!=0;k+) ak+1=ak+2; i-; elseprintf(%c,ai);5、输入3个字符串,按从小到大排序输出这3个字符串。 使用一个两维
35、数组贮存多个字符串char a8181;注意:如何使用一个两维数组贮存多个字符串 int i,j; for(i=0;i3;i+) gets(ai); for(i=0;i3;i+) puts(ai);注意:1、scanf(%d%s,&n,str) 其中%s为字符串格式2、逐个给字符串赋值的方法见书140页。 不可for(i=0;ai!=0;i+)3、stri=stri-A+10;4、pow函数5、任何进制转为十进制的方法6、输入一个整数n和一个字符串str,计算并输出n进制数str的值。 如输入:7 16则输出:13(16)7=(13)10如输入:16 3A则输出:58(3A)16=(58)10
36、#include stdio.h#include math.hmain() char str81; int n,i,s=0,t; clrscr(); scanf(%d%s,&n,str); for(i=0;stri!=0;i+) if(stri=A) stri=stri-A+10; else stri=stri-0; t=strlen(str); for(i=0;stri!=0;i+) s+=strt-i-1*pow(n,i); printf(%d,s);编写程序,将一个十进制正整数转换成十六进制数。 注意类比#include main()char a20;int x,i=0,j;clrscr
37、();scanf(%d,&x);while(x) if(x%16=10&x%16=0;j-)printf(%c,aj);printf(n);7、输入一个字符串,将其中的缩写形式展开,并输出展开后的该字符串。所谓展开缩写形式就是将其中由大小写字母或数字构成的形如a-f、U-Z、3-8 的形式展开成为 abcdef 、UVWXYZ 、345678,若出现f-a、A-7、9-5等形式则不予理睬。例如: 输入:qwe246e-hA-d$-%4-7A-Dz-xp-R4-0输出:qwr246efghA-d$-%4567ABCDz-xp-R4-0main() char a81; int i,c,s,k,t;
38、 gets(a); for(i=0;ai!=0;i+) if(ai=-) if(ai-1=A&ai+1=a&ai+1=0&ai+1i;k-)ak+c-2=ak;as-1+c-2+1=0; for(;i=t;i+) ai=ai-1+1; puts(a);补充:循环:求:a+aa+aaa+.的值#includevoid main()int a,n,i=1,sn=0,tn=0;coutinput a and nan;while(i=n)tn=tn+a;sn+=tn;a*=10;i+;coutthe answer is snendl;两个乒乓球队进行比赛,各出3人。甲队为A,B,C;已对是X,Y,Z;
39、已经抽签决定比赛名单。有人向队员大厅比赛的名单。A说他不和X比,C说他不和X,Z比。请编程序找出3对赛手的名单。#includevoid main()char i,j,k;for(i=X;i=Z;i+)for(j=X;j=Z;j+)if(i!=j)for (k=X;k=Z;k+)if(i!=k&j!=k)if(i!=X&k!=X&k!=Z)coutA-i B-j C-kendl;枚举口袋中有红,黄,蓝,白,黑5种颜色的球若干。每次从口袋中任意取出3歌,问得到3种不同颜色球的可能取法,输出每种排列的情况。#include#include /在C语言中不用加这句void main()enum co
40、lorred ,yellow ,blue,white, black;color pri;int i,j,k,n=0,loop;for(i=red;i=black;i+)for(j=red;j=black;j+)if(i!=j)for (k=red;k=black;k+)if(k!=i)&(k!=j)n+;coutsetw(3)n; /setw是输出格式的限定for(loop=1;loop=3;loop+)switch(loop)case 1:pri=color(i);break;case 2:pri=color(j);break;case 3:pri=color(k);break;default:break;switch(pri)case red:coutsetw(8)red;break;case yellow:coutsetw(8)yellow;break;case blue:coutsetw(8)blue;break;case white:coutsetw(8)white;break;case black:coutsetw(8)black;break;default:break;coutendl;couttotal:nendl;数组:不用strcat函数,编写程序,将两个字符串
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 春晚艺人保密协议2025版:泄密赔偿及违约责任详规合同3篇
- 2025版饮品连锁品牌门店劳动合同
- 二零二五年度木材加工厂木托盘生产与销售一体化合同4篇
- 2025版商业大厦高空作业安全防护与应急处理合同3篇
- 2025年度门面租赁合同风险评估与管理范本4篇
- 2025年度新材料市场调研与技术创新合同4篇
- 2025年度绿色城市广场植物租赁及景观设计合同4篇
- 二零二五年度塔吊司机驾驶培训与实习合同4篇
- 二零二五年厨师聘请合同(含健康食谱设计与营养咨询)4篇
- 二零二五年度出租车广告投放与收益分成合同3篇
- 工业自动化生产线操作手册
- 房地产销售任务及激励制度
- 并购指南(如何发现好公司)
- DL-T-1642-2016环形混凝土电杆用脚扣
- 铜矿成矿作用与地质环境分析
- 30题纪检监察位岗位常见面试问题含HR问题考察点及参考回答
- 询价函模板(非常详尽)
- 《AI营销画布:数字化营销的落地与实战》
- 麻醉药品、精神药品、放射性药品、医疗用毒性药品及药品类易制毒化学品等特殊管理药品的使用与管理规章制度
- 乘务培训4有限时间水上迫降
- 2023年低年级写话教学评语方法(五篇)
评论
0/150
提交评论