求出字母大小写转换
字母大小写转换 时间: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");}}
Ceraus数据成立于2020年底,基于KVM虚拟架构技术;主营提供香港CN2、美国洛杉矶CN2、日本CN2的相关VPS云主机业务。喜迎国庆香港上新首月五折不限新老用户,cera机房,线路好,机器稳,适合做站五折优惠码:gqceraus 续费七五折官方网站:https://www.ceraus.com香港云内存CPU硬盘流量宽带优惠价格购买地址香港云2G2核40G不限5Mbps24元/月点击购买...
官方网站:点击访问酷番云官网活动方案:优惠方案一(限时秒杀专场)有需要海外的可以看看,比较划算29月,建议年付划算,月付续费不同价,这个专区。国内节点可以看看,性能高IO为主, 比较少见。平常一般就100IO 左右。优惠方案二(高防专场)高防专区主要以高防为主,节点有宿迁,绍兴,成都,宁波等,节点挺多,都支持防火墙自助控制。续费同价以下专场。 优惠方案三(精选物理机)西南地区节点比较划算,赠送5...
pacificrack在最新的7月促销里面增加了2个更加便宜的,一个月付1.5美元,一个年付12美元,带宽都是1Gbps。整个系列都是PR-M,也就是魔方的后台管理。2G内存起步的支持Windows 7、10、Server 2003\2008\2012\2016\2019以及常规版本的Linux!官方网站:https://pacificrack.com支持PayPal、支付宝等方式付款7月秒杀VP...
字母大小写转换为你推荐
布局css支持ipad360退出北京时间utc+8 13:30-14:00换成北京时间是什么时候cuteftpCuteFTP的主要功能是什么?360arp防火墙在哪谁知道360防火墙的arp防火墙文件在哪重庆电信dns重庆的DNS服务器地址是多少?重庆电信dns重庆电信的DNS是什么重庆电信dns重庆电信 路由器连接另一个电脑,本地连接的IP是多少,?DNS首选,备用 服务器是多少?ipad代理想买个ipad,3000至4000元左右有什么好的tplink01cuteftp
手机域名注册 日本动态vps 阿里云邮箱登陆首页 host1plus 56折 gitcafe ssh帐号 英文站群 全站静态化 linux空间 老左正传 phpmyadmin配置 广州服务器 多线空间 路由跟踪 双十二促销 hdchina ftp是什么东西 西部数码主机 木马检测 更多