ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:56.85KB ,
资源ID:4708663      下载积分:5 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4708663.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(c语言典型问题处理方法小结.docx)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

c语言典型问题处理方法小结.docx

1、C语言典型问题处理方法小结 一、循环问题 (1)、数论问题1、求素数 第一个if判断是否能被2, 3, 4…一 直到本身整除。 第二个if判断是否只能被本身整除。 for(i=2;i<=a;i++) if(a%i==O) break;if(a==i) printf(Myes\nM); else printf(Mno\nH);素数概念: 对于某个整数a>l,如果它仅有平凡约数1和a,那么我们称a为素数(或质数)。 整数1被称为基数,它既不是质数也不是合数。 整数0和所有负整数既不是素数,也不是合数。 2、求最大公约数和最小公倍数 if(a>b) ( t=a; a=b

2、 b=t; ) for(i=a;i>=l;i-) if(a%i==O&&b%i==O) break; printf(Hlargest common divisor:%d\nH,i); printf(Mleast common multiple:%d\n*',(a*b)/is);b、辗转相除法求解 al=a; bl=b; while(a%b!=0) ( t=a%b; a=b; b=t; ) printf(**largest common divisor: %d\nlcast commonmultiple: %d",b,al*bl/b); 3、求完数 一个数如

3、果恰好等于它的因子之和,这个数就称为“完数”。 例如:6的因子为1、2、3,而6=1 + 2+3,因此6是“完数”。 编写程序,将一个十进制正整数转换成十六进制数。 注意类比 #include main() { char a[20J; int x,i=OJ; clrscr(); scanf「%€T,&x); while(x) (if(x%16>=10&&x% 16V=15) a[i]=x%16-10+*A,; elsea[i]=x%16+,01; x=x/16; i++;7、输入一个字符串,将其中的缩写形式展开,并输出展开后的该字符串。所谓 展

4、开缩写形式就是将其中由大小写字母或数字构成的形如"U・Z“、“3・8” 的形式展开成为“abcdef"、“UVWXYZ“、“345678",假设出现"唱"、''A・7”、 “9-5”等形式那么不予理睬。例如: 输入:qwe246e-hA-d$-%4-7A-Dz-xp-R4-0输出:qwr246efghA-d$-%4567ABCDz-xp-R4-0 main() char a[81]; int i,c,s,k,t; gets(a); for(i=0;a[i]!=,\0';i++) if(a[i]==,J)if(a[i-l]=,A,&&a[i+l]<

5、Z'||a[i-l]>=,a,&&a[i+l]<=,z,||a[i-l]> =,0,&&a[i+l]<=,91)) s=strlen(a); c=a[i+l]-a[i-l]; t=i+c-2; 注意: 1、必须在结尾处加上结束标记,才能实现 puts语句。 2、加上结束标记后 for(i=0;a[i]!='\0,;i++)® 句才能卖母。 3、逻辑&&与逻辑||的优先级。 4、s=strlen(a)摆放的位置。 for(k=s-l;k>i;k-) a[k+c-2]=a[k]; a[s-l+c-2+l]=,\0,; for(;i<=t;i++) a[i]=a[i-l

6、]+l; ) puts(a);) 补充: 循环: 求:a+aa+aaa+的值#include void main()( int a,n,i=l,sn=0,tn=0; cout«"input a and nH«endl; cin»a»n; while(i<=n) (tn=tn+a; sn+=tn;a*=10;i++; ) cout«"the answer is '*«sn«endl;) 两个乒乓球队进行比赛,各出3人。甲队为A,B,C;已对是X,Y,Z;已经抽签决定 比赛名单。有人向队员大厅比赛的名单。A说他不和X比,C说他不和X,Z比。 请

7、编程序找出3对赛手的名单。 #includevoid main() ( charij,k; for(i=,X,;i<=,Z,;i++)for(j=*X,;j<=,Z,;j++) for(k=,X,;k<=,Z,;k++)if(i!=k&&j!=k) if(i!=*X'&&k!=*X,&&k!=,Z,) cout«,,A-,,«i«M C-n«k«endl;} 枚举口袋中有红,黄,蓝,白,黑5种颜色的球假设干。每次从口袋中任意取出3歌, 问得到3种不同颜色球的可能取法,输出每种排列的情况。 #include#include

8、manip.h>〃在C语言中不用加这句 void main(){enum color{red ,yellow ,blue,white, black}; color pri; int ij,k,n=0,loop; for(i=rcd;i<=black;i++)for(j=red;j<=black;j++) if(i!=j)( for (k=red;k<=black;k++) if((k!=i)&&(k!=j)) ( n++;cout«setw(3)«n;//setw是输出格式的限定 for(Ioop=l ;loop<=3;loop++) ( switch(loop) ( case

9、1 :pri=color(i);break; case 2:pri=color(j);break; case 3:pri=color(k);break; default:break; ) switch(pri) ( case red:cout«setw(8)«"red";break; case yellow:cout«setw(8)«,,yeIlowM;break; case blue:cout«setvv(8)«,,blue',;break; case white:cout«setw(8)«,,white";break; case black:cout«setw(8)«*'blackn;br

10、eak; default: break; ) ) cout«endl;coutvv''total:"vviivvendl; 数组: 不用strcat函数,编写程序,将两个字符串串接起来。 #includeusing namespace std; void main() ( int i=0; chara[20J,b[10]; gets(a);gets(b); for(i=0;i<10;i++)if(a[i]==*\O,)break; for(int j=0;j<10;j++) {a[i]=b[j];i++;if(bU]=='\O')break;} cou

11、t«a«endl;) 输入一行字符,统计其中有多少个单词,单词之间用空格分开。 #includeusing namespace std; void main()( char string[100]; int i,num=0,word=0; char c; gets(string); for(i=0;(c=string[i])!='\0,;i++)if(c==* »)word=0; else if(word==0){word=l;num++;} cout«"There are "«num«n wordsn«endl;) 给出年,月,日,计算该日是该年的第几

12、天#include using namespace std;void main() ( int sum_day(int,int); 〃函数声明 int leap(int year);〃函数声明 int year,month,day,days; cout«"input dateu«endl; cin»year»month»day; cout«year«,7,,«month«*7,,«day; days=sum_day(month,day); if,(leap(year)&&month>=3)days++; 〃假设是闰年,且在 3 月以后,那么加一 天 c

13、out«"is the ',«days«^^ th day in this year"«endl;) . int sum_day(int month,int day)( , int i; int day_tab[12]={31,28,31,30,31,30,31,31,30,31,30,31); for(i=0;i

14、这道题虽然用了你们不考的函数调用,但是相信你还是看的懂的,这道题主 要是表达了知识的综合运用)杨辉三角(不做了,相信你会的吧) 求3*4矩阵中的最大最小元素(用循环,也不难)输入一个矩阵的各个元素,求转置矩阵(用循环进行赋值,然后再定义个矩阵, 然后进行赋值,例如:假设a矩阵为2*3,那么for(i=0;iv=l;i++) for(j=0;j<=2;j++) bU][i]=a[i]U];)输出魔方阵,就是每一行每一列和对角线数字之和相等。(方阵阶数由终端输入, 但只需是奇数即可) #include#include void main()

15、 int a[16][16],ij,k,p=l,n; while(p==l)cout«Kenter n(from 1 to 15)''; cin»n; if((n!=0)&&(n<=15)&&(n%2!=0))p=0; ) for(i=l;i<=n;i++) for(j=l;j<=n;j++)a[i]U]=O; j=n/2+l; a[l][j]=l; for(k=2;k<=n*n;k++) {if(in) {i=i+2;j-;) else{if(in)j=l;} if(ari]r.j]==O)a[i]Ul=k; else{i=i+2

16、j-;a[i]UJ=k;} } for(i=l;i<=n;i++) {for(j=l;j<=n;j++)cout«setw(5)«a[i][j]; cout«endl; ))(这道题目当时觉得很有难度,刚刚看到时没有思路) 附录资料:不需要的可以自行删除Abstract: Based on the comprehensive analysis on the plastic part's structure service requirement, mounding quality and mould menu factoring cost. A corresponding inj

17、ection mould of internal side core pulling was designed. By adopting the multi-direction and multi-combination core-pulling. A corresponding injection mould of internal side core pulling was designed, the working process of the mould was introduced C语言详解-枚举类型 注:以下全部代码的执行环境为VC++6.0在程序中,可能需要为某些整数定义一个

18、别名,我们可以利用预处埋指令#de行ne来完成这 项工作,您的代码可能是: #define MON 1define TUE 2 # define WED 3dcfinc THU 4 # define FRI 5dcfine SAT 6 # define SUN 7在此,我们定义•种新的数据类型,希望它能完成同样的工作。这种新的数据类型叫枚举型。 1 .定义一种新的数据类型一枚举型 以下代码定义了这种新的数据类型-枚举型enum DAY { MON=1,TUE, WED, THU, FRI, SAT, SUNI; (I)枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型

19、常量,元素之间用逗号, 隔开。 ⑵DAY是一个标识符,可以看成这个集合的名字,是一个可选项,即是可有可无的项。 (3)第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加I。 (4)可以人为设定枚举成员的值,从而自定义某个范围内的整数。 (5)枚举型是预处理指令#define的替代。 (6)类型定义以分号;结束。 2 .使用枚举类型对变量进行声明新的数据类型定义完成后,它就可以使用了。我们已经见过最基本的数据类型,如:整型int, 单精度浮点型float,双精度浮点型double,字符型char,短整型short等等。用这些基本数据 类型声明变量通常是这样: cha

20、r a; 〃变量a的类型均为字符型charcharletter; int x,y, z; 〃变量x,y和z的类型均为整型intini number; double m, n;double result; 〃变量result的类型为双精度浮点型double 既然枚举也是一种数据类型,那么它和基本数据类型一样也可以对变量进行声明。 方法一:枚举类型的定义和变量的声明分开enum DAY { MON=1, TUE, WED, THU, FRI, SAT, SUNI; enum DAY yesterday;enum DAY today; enum DAY tomorrow; 〃变最 t

21、omorrow 的类型为枚举型 enum DAYenum DAY good_day, bad_day; 〃变量 good_day 和 bad_day 的类型均为枚举型 enum DAY 方法二:类型定义与变量声明同时进行: enum//跟第一个定义不同的是,此处的标号DAY省略,这是允许的。 (Saturday, sunday = 0, monday, tucsday, Wednesday, thursday, friday } workday; //变量workday的类型为枚举型enum DAYenum week { Mon=l, Tue, Wed, Thu, Fri Sat, Sun

22、} days; 〃变量 days 的类型为枚举型 enum week enum BOOLEAN { false, true } end_flag, match_flag; //定义枚举类型并声明了两个枚举型变 量方法三:用typcdef关键字将枚举类型定义成别名,并利用该别名进行变量声明: typedef enum workday { Saturday, sunday = 0, monday, tuesday, Wednesday, thursday, friday} workday; 〃此处的workday为枚举型enum workday的别名 workday today, tomor

23、row; 〃变量 today 和 tomorrow 的类型为枚举型 workday,也即 enum workday enum workday 中的 workday 可以省略: typedef enumSaturday, sunday = 0, monday, tucsday, Wednesday, thursday, friday } workday; 〃此处的workday为枚举型enum workday的别名workday today, tomorrow; 〃变量 today 和 tomorrow 的类型为枚举型 workday,也即 enum workday 也可以用这种方式: t

24、ypedef enum workday { Saturday, sunday = 0, nionday, tuesday, Wednesday, thursday, friday );workday today, tomorrow; 〃变最【oday 和 tomorrow 的类型为枚举型 workday,也即 enum workday 注意:同一个程序中不能定义同名的枚举类型,不同的枚举类型中也不能存在同名的命名常 量。错误例如如下所示: 错误声明一:存在同名的枚举类型typcdcf enum ( Wednesday, thursday, friday } workday;typcdc

25、f enum WEEK { Saturday, sunday = 0, monday,} workday; 错误声明二:存在同名的枚举成员(ypedef enum { Wednesday, thursday, friday} workday_l; typedef enum WEEK{ Wednesday, sunday = 0, monday, } workday_2;.使用枚举类型的变量 2.1 对枚举型的变量赋值。 实例将枚举类型的赋值与基本数据类型的赋值进行了对.比: 方法一:先声明变量,再对变审赋值#include 芦定义枚举类型*/cnum D

26、AY { MON=1,TUE, WED, THU, FRI, SAT, SUN }; void main() { /*使用基本数据类型声明变量,然后对变量赋值*/ int x, y, z; x = 10; y = 20; z = 30; /*使用枚举类型声明变量,再对枚举型变量赋值*/ enum DAY yesterday, today, tomorrow;for(a=l ;a<=IOOO;a++) 注意S=0所放的位置 s=0; for(i=l;i<=a;i++) if (a%i==0) s+=i; if(s>=a) break; ) if(s==a) p

27、rintf(n%d\tH,a); )4、分解质因数 将一个整数写成几个质因数的连乘积,如:输入36,那么程序输出36=2*2*3*3 。 解一、 main() 36=2*2*3*3 。 解一、 main() int a,z,i; clrscr(); scanf(,,%d,,,&a); loop: for(z=2;z<=a;z++) 看似简单,但要自己完整地写出来还真不 容易! ! ! 竟然还动用了 got。语句,正好可以熟悉一 下goto语句的用法! ! ! for(i=2;i<=z;i++) if(z%i==0) break; if(z==i) if(a%z=

28、0) 判断是否为质数 判断是否为a的质因数 判断下一个数开始有要重新 从2 开始了。所以用loop语句回 到for语句,这是for语句仍 从2初始化。 从2开始的原那么不变,变的 是a的值。 k++; if(k==l) printf(,,%d=%d,,,al,z); else printf(,,*%dn,z); a/=z; goto loop; } ) ) 解二: niain() { int n, k=2, isfirst=l; printfC'Input n=n); 用计数器来解决每行输入不 同的问题。 scanf("%dH,&n); y

29、esterday = MON; today = TUE; tomorrow = WED; printf("%d %d %d \n", yesterday, today, tomorrow);) 方法二:声明变量的同时赋初值#include /*定义枚举类型*/cnum DAY { MON=1,TUE, WED, THU, FRI, SAT, SUN }; void main()( /*使用基本数据类型声明变量同时对变量赋初值*/ int x= 10, y=20, z=30; /*使用枚举类型声明变量同时对枚举型变量赋初值*/ enum DAY yeste

30、rday = MON, today = TUE, tomorrow = WED; printf("%d %d %d \n'\ yesterday, today, tomorrow);I 方法三:定义类型的同时声明变显,然后对变量赋值。 #include /*定义枚举类型,同时声明该类型的三个变量,它们都为全局变量*/ cnum DAY { MON=1,TUE, WED, THU, FRI, SAT, SUN } yesterday, today, tomorrow;/*定义三个具有基本数据类型的变量,它们都为全局变量*/ int x, y, z;void main

31、) ( /*对基本数据类型的变量赋值*/ x= 10; y = 20; z = 30; /*对枚举型的变量赋值*/ yesterday = MON: today = TUE; tomorrow = WED; printf("%d %d %d \n", x, y, z); 〃输出:10 20 30 printf("%d %d %d \n'\ yesterday, today, tomorrow); 〃输出:12 31 方法四:类型定义,变量声明,赋初值同时进行。 #inckide /*定义枚举类型,同时声明该类型的三个变量,并赋初值。它们都为全局变量*/

32、 enum DAY{ MON=1, TUE, WED, THU, FRI, SAT, SUN) yesterday = MON, today = TUE, tomorrow = WED;/*定义三个具有基本数据类型的变量,并赋初值。它们都为全局变量力 int x = 10, y = 20, z = 30;void main() { printf("%d %d %d\n", x, y, z); 〃输出:10 20 30 printf("%d %d %d \n", yesterday, today, tomorrow); 〃输出:12 31 1.2 对枚举型的变量赋整数

33、值时,需要进行类型转换。 #include enum DAY { MON=1,TUE, WED, THU, FRI. SAT, SUN }; void main()( enum DAY yesterday, today, tomorrow; yesterday = TUE; today = (enum DAY) (yesterday + 1); 〃类型转换 tomorrow = (enum DAY) 30; 〃类型转换 //tomorrow = 3; 〃错误 printf("%d %d %d \n", yesterday, today, tomorrow);

34、//®j 出:2 3 30 }使用枚举型变量 #includcenum { BELL= '\a',BACKSPACE = '\b', HTAB= RETURN=V,NEWLINE = *\n', VTAB= '\v; SPACE='' enum BOOLEAN { FALSE = 0, TRUE } match_flag;void main() {int index = 0; int count_oflletter = 0;int count_o匚space = 0; char strlJ = "I'm Ely efod";match_flag = FALSE;

35、 for(; str[index] != 10'; index++) if( SPACE != str[indcx]) count_oUelter++;else (match_flag = (enum BOOLEAN) 1; count_of_space++; }printf("%s %d times %c'\ match_flag ? "match" : "not match", count_of_space, NEWLINE); printf("count of letters: %d %c%c", count_of_lcttcr, NEWLINE, RETURN); 1输出:

36、match 2 limescount of letters: 10 Press any key to continue.枚举类型与sizcof运算符 #includc enum escapes { BELL = '\a', BACKSPACE = '\b', HTAB= '\t; RETURN= M, NEWLINE= '\n', VTAB= *\v', SPACE="I; enum BOOLEAN { FALSE = 0, TRUE } match_flag;void main() { prin(f("%d bytes \n", sizeof(enum es

37、capes)); //4 bytes printf("%d bytes \n", sizeof(escapes)); //4 bytesprintf("%d bytes \n", sizeof(enum BOOLEAN)); //4 bytes printf("%d bytes \n", sizeof(BOOLEAN)); //4 bytes printf("%d bytes \n", sizeof(match_flag)); //4 bytes prin(f("%d bytes \n", sizeof(SPACE)); //4 bytes printf("%d bytes \n", siz

38、eof(NEWLINE)); //4 bytes printf("%d bytes \n", sizcof(FALSE)); //4 bytes printf("%d bytes \n", sizeof(0)); //4 bytes1 4 .综合举例#include enum Season { spring, summer、100, fali=96, winter1; typedef enum Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday )Weekday; void main(){

39、 /* Season */ printf("%d \n'; spring);//0 printf("%d, %c \n", summer, summer); // 100, d printf("%d \n", fall+winter); // 193 Season niyScason=wintcr; if(winter==my Season)printf(" my Season is winter \n"); // mySeason is winter int x=IOO; if(x==summer)printf("x is equal to sunimer\n"); // x

40、is equal to summer prinif("%d by(es\n", sizeof(spring)); // 4 bytes /* Weekday */ printf("sizeof Weekday is: %d \n", sizeof(Weekday)); //sizeof Weekday is: 4 Weekday today = Saturday; Weekday tomorrow; if( today == Monday)tomorrow = Tuesday; else tomorrow = (Weekday) (today + 1); //remember

41、to convert from int to Weekday }本文来自CSDN--xiaobai32966博客 while(k<=n) if(n%k==O){ if(isfirst) { prmtf(,,%d=%d,\ n, k); isfirst=O; } else printf(H*%d,,,k);n/=k; ) else k++; printf(,,\nH);) 5、从键盘输入两个整数,输出这两个整数的商的小数点后所有1000位整数 for(i=l;i<=1000;i++) {主要体会除法运算中小数形成的原因 t=a%b;解决这类题目从本质出发 a=t*10; )

42、 printfCXn'*);6、编程计算并输出两个带分数的差。带分数就是由一个整数和一个真分数合成 的数,两个带分数(整数、分子、分母均大于0)从键盘输入,且带分数1大于 带分数2,输入格式为:整数1 [分子1/分母1],整数2[分子2/分母2]。差要求 化简,整个输出样式为(如差为整数,那么无分数局部,如差的整数为0,那么无整 数局部): 整数“分子1/分母1]-整数2[分子2/分母2]=整数[分子/分母|例如:输入:12(6/35],8[3/5] 输出:12[6/35]-8[3/5]=3[4/7]又如:输入:6[2/3],4[12/18] 输出:6[2/3]-4[12/18]=2又如

43、输入:9[7/8],9[3/8] 输出:9[7/8]-9[3/8]=[1/2]main() ( int zl,fzl,fml,fzlx,z2,fz2,fni2,fz2x,z9fz,fm,fzx,i; scanf(M%d[%d/%d],%d[%d/%d]M,&zl,&fzl,&fml,&z2,&fz2,&fm2); fzlx=zl*fml+fzl; fz2x=z2*fni2+fz2; fm=fml*fm2; fz=fzlx*fm2-fz2x*fml; for(i=fm;i>=2;i) if(fm%i==O&&fz%i==O) {fz/=i; fm/=i; ) z=

44、fz/fm; fzx=fz%fm; if(fzx==O) printf(n%d[%d/%d]-%d[%d/%d]=%d\iiH,zl,fzl,fml,z2,fz2,fm2,z); else if(z==O)printf(,,%d[%d/%d]-%d[%d/%d]=[%d/%d]\n,,,zl,fzl,fml,z2,fz2,fm2,fzx,fm); else printf(H%d[%d/%d]-%d[%d/%(i]=%d[%d/%d]\nn,zl,fzl,finl,z2,fz2,fm2,z,fzx,f m);) (2)近似问题1、书P122习题4・6 #include "math.

45、h"main()注意千万不要忘记添加 {#include "math.h" float xj=l,k,s,so; int n; scanf(n%fn,&x); s=x; so=x+l; for(n=l;fabs(s-so)>le-6;n++) { for(k=l;k<=n;k++) j*=k; so=s; if(n%2!=0) s-=x*x*x/((2*n-l)*j); else s+=x*x*x/((2*n-l)*j); ) printf("%f\n",s);2、解方程问题: 编程用二分法求解方程x3+4x2-10=0的解。 #include ''mat

46、h.h"main() float x,xl=l,x2=4,fl=-l,f;/*fl=xl*xl*xl+4*xl*xl-10;*/ while(fabs(x2-xl)>le-6) 可以省略此句 x=(xl+x2)/2; f=x*x*x+4*x*x-10; if(f>0) x2=x; else xl=x; )) (3)枚举法 (4)数列问题 二、数组问题 (1)排序问题 1、从小到大排序 main()( int a[101,iJ,t; for(i=0;i<10;i++) scanf(H%dH,&a[i]); for(i=l;i<10;i++) for(j=0;j<10-i;

47、j++) if(a[j]>a[j+l]) { t=a[j+l]; aU+l]=aU]; a[j]=t;) for(i=0;i<10;i++) printf(H%d H,a[i]);printf("\n"); )2、从大到小排序 main() (int for(i=0;i<10;i++) scanf("%dM,&a[i]);for(i=l;i<10;i++) fora=9;j>=i;j-) 可以用vO)*/替代注意排序问题: 1、须迅速,熟练,无过失经常插入在程序中间 2、现使用最大数下沉冒泡法还可以使用最小数上浮冒泡法 3、j控制前面一个数和后面一个数一 一比拟。由于是最大

48、数下沉,i+1后j 仍要从0开始。 4、i控制这样的操作一共要做多少次 5、注意ij的控制次数现使用最大数上浮冒泡法 还可使用最小数下沉冒泡法 t=a[j-l]; a[j-l]=a[j]; a[j]=t; } for(i=();i<10;i++) printf(H%d H,a[i]);) (2)二维数组三、字符或字符串输入输出问题 (1)字符打印1、打印* 此类题的溯源为书P122 4.H (1),其他题都是它的拓展for (i=l;i<=n;i++) for (i=l;i<=n;i

49、) 一共要输出的行数 *** **** *** **** for(j=l;j<=i;j++) printf("*M); printfCXn*'); ) 每行要打印的率数 解题要点: 此类题案键在于找到每行要打印的个数和行数的关系。此题j==i **** *** ** * j==n-i+l **** 解题要点: 在出现空格的 空格和行数的 **** 解题要点: 在出现空格的 空格和行数的 for(j=l;j<=n-i;j++) printf(H ,f); for(k=l ;k<=i;k++) printf(M*"); printf(n\n

50、M); ) 控制空格数 每行要打印的*数 j==i-l k==n-i+l **** *** for(i=l;i<=n;i++) e、i *for(j=l;j<=n-i;j++) ***printf(M M);for(k=l;k<=2*i-l;k++) *******printf(''*");printf(H\nH); } * for(i=l;i<=n;i++) for(i=l;i<=n-l;i++) *** { ( ・'・••/ »•« «♦・ rjw forQ=l;j<=n-i;j++) for(j=l;j<=i;j++) *?

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服