求出字母大小写转换
字母大小写转换 时间:2021-05-05 阅读:(
)
C语言常用算法CCCC语言常用算法归纳应当掌握的一般算法一、基本算法:交换、累加、累乘二、非数值计算常用经典算法:穷举、排序(冒泡,选择)、查找(顺序即线性)三、数值计算常用经典算法:级数计算(直接、简接即递推)、一元非线性方程求根(牛顿迭代法、二分法)、定积分计算(矩形法、梯形法)、矩阵转置四、其他:迭代、进制转换、字符处理(统计、数字串、字母大小写转换、加密等)、整数各数位上数字的获取、辗转相除法求最大公约数(最小公倍数)、求最值、判断素数(各种变形)、数组元素的插入(删除)、二维数组的其他典型问题(方阵的特点、杨辉三角形)详细讲解一、基本算法1111.
交换(两量交换借助第三者)例1、任意读入两个整数,将二者的值交换后输出.
main(){inta,b,t;scanf("%d%d",&a,&b);printf("%d,%d\n",a,b);t=a;t=a;t=a;t=a;a=b;a=b;a=b;a=b;b=t;b=t;b=t;b=t;printf("%d,%d\n",a,b);}【解析】程序中加粗部分为算法的核心,如同交换两个杯子里的饮料,必须借助第三个空杯子.
假设输入的值分别为3、7,则第一行输出为3,7;第二行输出为7,3.
其中t为中间变量,起到"空杯子"的作用.
注意:三句赋值语句赋值号左右的各量之间的关系!
【应用】例2、任意读入三个整数,然后按从小到大的顺序输出.
main(){inta,b,c,t;scanf("%d%d%d",&a,&b,&c);/*以下两个if语句使得a中存放的数最小*/if(a>b){t=a;t=a;t=a;t=a;a=b;a=b;a=b;a=b;b=t;b=t;b=t;b=t;}if(a>c){t=a;t=a;t=a;t=a;a=c;a=c;a=c;a=c;c=t;c=t;c=t;c=t;}/*以下if语句使得b中存放的数次小*/C语言常用算法if(b>c){t=b;t=b;t=b;t=b;b=c;b=c;b=c;b=c;c=t;c=t;c=t;c=t;}printf("%d,%d,%d\n",a,b,c);}2222.
累加累加算法的要领是形如"ssss=s+s+s+s+A"的累加式,此式必须出现在循环中才能被反复执行,从而实现累加功能.
"A"通常是有规律变化的表达式,s在进入循环前必须获得合适的初值,通常为0.
例1、求1+2+3+……+100的和.
main(){inti,s;s=0;s=0;s=0;s=0;i=1;i=1;i=1;i=1;while(ia[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}for(i=0;ia[n-2])a[n-1]=x;/*比最后一个数还大就往最后一个元素中存放*/else/*查找待插位置*/{j=0;while(ja[j])j++;/*从最后一个数开始直到待插位置上的数依次后移一位*/for(k=n-2;k>=j;k--)a[k+1]=a[k];a[j]=x;/*插入待插数*/}for(j=0;j=i;k--)a[k+1]=a[k];a[i]=x;/*插入待插数*/}}for(i=0;i=m&&j=n&&ifloatg(floatx,floateps);main(){floatx,eps;scanf("%f%f",&x,&eps);printf("\n%f,%f\n",x,g(x,eps));}floatg(floatx,floateps){intn=1;floats,t;s=1;t=1;do{t=t*x/(2*n);s=s+(n*n+1)(n*n+1)(n*n+1)(n*n+1)*t;/*加波浪线的部分为直接法描述部分,t为递推法描述部分*/n++;}while(fabs(t)>eps);returns;}2222.
一元非线性方程求根C语言常用算法(1111)牛顿迭代法牛顿迭代法又称牛顿切线法:先任意设定一个与真实的根接近的值x0作为第一次近似根,由x0求出f(x0),过(x0,f(x0))点做f(x)的切线,交x轴于x1,把它作为第二次近似根,再由x1求出f(x1),过(x1,f(x1))点做f(x)的切线,交x轴于x2,……如此继续下去,直到足够接近(比如|x-x0|=1e-5);printf("%f\n",x);}(2222)二分法算法要领是:先指定一个区间[x1,x2],如果函数f(x)在此区间是单调变化的,则可以根据f(x1)和f(x2)是否同号来确定方程f(x)=0在区间[x1,x2]内是否有一个实根;如果f(x1)和f(x2)同号,则f(x)在区间[x1,x2]内无实根,要重新改变x1和x2的值.
当确定f(x)在区间[x1,x2]内有一个实根后,可采取二分法将[x1,x2]一分为二,再判断在哪一个小区间中有实根.
如此不断进行下去,直到小区间足够小为止.
具体算法如下:(1)输入x1和x2的值.
(2)求f(x1)和f(x2).
(3)如果f(x1)和f(x2)同号说明在[x1,x2]内无实根,返回步骤(1),重新输入x1和x2的值;若f(x1)和f(x2)不同号,则在区间[x1,x2]内必有一个实根,执行步骤(4).
(4)求x1和x2的中点:x0=(x1+x2)/2.
(5)求f(x0).
(6)判断f(x0)与f(x1)是否同号.
①如果同号,则应在[x0,x2]中寻找根,此时x1已不起作用,用x0代替x1,用f(x0)代替f(x1).
②如果不同号,则应在[x1,x0]中寻找根,此时x2已不起作用,用x0代替x2,用f(x0)代替f(x2).
(7)判断f(x0)的绝对值是否小于某一指定的值(例如10-5).
若不小于10-5,则返回步骤(4)重C语言常用算法复执行步骤(4)、(5)、(6);否则执行步骤(8).
(8)输出x0的值,它就是所求出的近似根.
例如,用二分法求方程2x3-4x2+3x-6=0在(-10,10)之间的根.
#include"math.
h"main(){floatx1,x2,x0,fx1,fx2,fx0;do{printf("Enterx1&x2");scanf("%f%f",&x1,&x2);fx1=2*x1*x1*x1-4*x1*x1+3*x1-6;fx2=2*x2*x2*x2-4*x2*x2+3*x2-6;}while(fx1*fx2>0);do{x0=(x1+x2)/2;fx0=2*x0*x0*x0-4*x0*x0+3*x0-6;if((fx0*fx1)1e-5);printf("%f\n",x0);}3333.
梯形法计算定积分定积分∫badxxf)(的几何意义是求曲线y=f(x)、x=a、x=b以及x轴所围成的面积.
可以近似地把面积视为若干小的梯形面积之和.
例如,把区间[a,b]分成n个长度相等的小区间,每个小区间的长度为h=(b-a)/n,第i个小梯形的面积为[f(a+(i-1)·h)+f(a+i·h)]·h/2,将n个小梯形面积加起来就得到定积分的近似值:∑∫=+++≈nibahhiafhiafdxxf12/)]())1(([)(根据以上分析,给出"梯形法"求定积分的N-S结构图:输入区间端点:a,b输入等分数nh=(b-a)/2,s=0i从1到nsi=(f(a+(i-1)*h)+f(a+i*h))*h/2s=s+si输出s上述程序的几何意义比较明显,容易理解.
但是其中存在重复计算,每次循环都要计算小梯形的上、下底.
其实,前一个小梯形的下底就是后一个小梯形的上底,完全不必重复计C语言常用算法算.
为此做出如下改进:∫∑=+++≈banihiafbfafhdxxf11)](2/)(2/)([)(矩形法求定积分则更简单,就是将等分出来的图形当作矩形,而不是梯形.
例如:求定积分∫++40)2*3*(dxxxx的值.
等分数n=1000.
#include"math.
h"floatDJF(floata,floatb){floatt,h;intn,i;floatHSZ(floatx);n=1000;h=fabs(a-b)/n;t=(HSZ(a)+HSZ(b))/2;for(i=1;i=1;day--)peach=(peach+1)*2;printf("Thefirstday:%d\n",peach);}又如,用迭代法求x=a的根.
求平方根的迭代公式是:xn+1=0.
5*(xn+a/xn)[算法](1)设定一个初值x0.
(2)用上述公式求出下一个值x1.
(3)再将x1代入上述公式,求出下一个值x2.
(4)如此继续下去,直到前后两次求出的x值(xn+1和xn)满足以下关系:|xn+1-xn|=1e-5);printf("%f\n",x1);}2222.
进制转换(1111)十进制数转换为其他进制数一个十进制正整数m转换成r进制数的思路是,将m不断除以r取余数,直到商为0时止,以反序输出余数序列即得到结果.
注意,转换得到的不是数值,而是数字字符串或数字串.
例如,任意读入一个十进制正整数,将其转换成二至十六任意进制的字符串.
voidtran(intm,intr,charstr[],int*n){charsb[]="0123456789ABCDEF";inti=0,g;do{g=m%r;str[i]=sb[g];m=m/r;i++;}while(m!
=0);*n=i;}main()C语言常用算法{intx,r0;/*r0为进制基数*/inti,n;/*n中存放生成序列的元素个数*/chara[50];scanf("%d%d",&x,&r0);if(x>0&&r0>=2&&r0=0;i--)printf("%c",a[i]);printf("\n");}elseexit(0);}(2222)其他进制数转换为十进制数其他进制整数转换为十进制整数的要领是:"按权展开",例如,有二进制数101011,则其十进制形式为1*25+0*24+1*23+0*22+1*21+1*20=43.
若r进制数an……a2a1(n位数)转换成十进制数,方法是an*rn-1+……a2*r1+a1*r0.
注意:其他进制数只能以字符串形式输入.
例1、任意读入一个二至十六进制数(字符串),转换成十进制数后输出.
#include"string.
h"#include"ctype.
h"main(){charx[20];intr,d;gets(x);/*输入一个r进制整数序列*/scanf("%d",&r);/*输入待处理的进制基数2-16*/d=Tran(x,r);printf("%s=%d\n",x,d);}intTran(char*p,intr){intd,i,cr;charfh,c;d=0;fh=*p;if(fh=='-')p++;for(i=0;i='A')cr=toupper(c)-'A'+10;elsecr=c-'0';d=d*r+cr;d=d*r+cr;d=d*r+cr;d=d*r+cr;}if(fh=='-')d=-d;return(d);}3333.
矩阵转置矩阵转置的算法要领是:将一个m行n列矩阵(即m*n矩阵)的每一行转置成另一个n*m矩阵的相应列.
C语言常用算法例1、将以下2*3矩阵转置后输出.
即将123转置成144562536main(){inta[2][3],b[3][2],i,j,k=1;for(i=0;i='x'&&a[i]='X'&&a[i]=0;j--)printf("%d",a[j]);printf("\n");}C语言常用算法6666.
辗转相除法求两个正整数的最大公约数该算法的要领是:假设两个正整数为a和b,先求出前者除以后者的余数,存放到变量r中,若r不为0,则将b的值得赋给a,将r的值得赋给b;再求出a除以b的余数,仍然存放到变量r中……如此反复,直至r为0时终止,此时b中存放的即为原来两数的最大公约数.
例1、任意读入两个正整数,求出它们的最大公约数.
[法一:用while循环时,最大公约数存放于bbbb中]main(){inta,b,r;doscanf("%d%d",&a,&b);while(amax)max=a[i];elseif(a[i]#includemain(){intk,j,a[101];clrscr();/*清屏函数*/for(k=2;k=0;j--)printf(输出时每行前导空格递减*/for(j=0;j<=i;j++)printf("%4d",a[i][j]);printf("\n");}}
商家介绍:创梦云是来自国内的主机销售商,成立于2018年4月30日,创梦云前期主要从事免备案虚拟主机产品销售,现在将提供5元挂机宝、特惠挂机宝、香港云服务器、美国云服务器、低价挂机宝等产品销售。主打高性价比高稳定性挂机宝、香港云服务器、美国云服务器、香港虚拟主机、美国虚拟主机。官方网站:http://cmy0.vnetdns.com本次促销产品:地区CPU内存硬盘带宽价格购买地址香港特价云服务器1...
819云互联是海外领先的互联网业务平台服务提供商。专注为用户提供低价高性能云计算产品,致力于云计算应用的易用性开发,并引导云计算在国内普及。目前平台研发以及运营云服务基础设施服务平台(IaaS),面向全球客户提供基于云计算的IT解决方案与客户服务,拥有丰富的海外资源、香港,日本,美国等各国优质的IDC资源。官方网站:https://www.819yun.com香港特价物理服务器:地区CPU内存带宽...
提速啦的来历提速啦是 网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑提速啦的市场定位提速啦主要代理市场稳定速度的云服务器产品,避免新手购买云服务器的时候众多商家不知道如何选择,妮妮云就帮你选择好了产品,无需承担购买风险,不用担心出现被跑路 被诈骗的情况。提速啦的售后保证提速啦退款 通过于合作商的友好协商,云服务器提供3天内全额退款,超过3天不退款 物理机部分支持当天全额退款提速啦提现 充...
字母大小写转换为你推荐
波音737起飞爆胎飞机会爆胎的吗?美要求解锁iPhoneiphone美版解锁硬解大概需要多少钱啊360公司迁至天津奇虎360公司在哪?flashfxp下载求最新无需注册的FlashFXP下载地址重庆电信dns重庆电信的DNS是什么zhuo爱大涿爱— 金鱼花火 、 歌词给我翻译过来。!tumblr上不去吃鸡更新完打不开,成这样了,怎么办在线等,挺急的武林官网欢go客户端一般在哪里下载是官方的?网上支付功能怎样开通网上支付功能?discuz论坛申请请问现在哪些网址能给免费申请Discuz! 论坛
美国vps评测 greengeeks 西安服务器 cloudstack evssl lamp配置 200g硬盘 免费吧 服务器干什么用的 双线机房 smtp虚拟服务器 cxz 杭州电信宽带优惠 中国联通宽带测试 睿云 hdsky ncp是什么 weblogic部署 ubuntu安装教程 建站行业 更多