预览加载中,请您耐心等待几秒...
1/8
2/8
3/8
4/8
5/8
6/8
7/8
8/8

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

丈夫志四方,有事先悬弧,焉能钧三江,终年守菰蒲。——《顾炎武》c语⾔数组如何把⼀串数字存⼊数组_C语⾔经典编程题(下)C语⾔字符串加密和解密算法C语⾔输出等腰三⾓形C语⾔约瑟夫环问题C语⾔整数逆序输出C语⾔三⾊旗问题C语⾔求定积分C语⾔求空间两点之间的距离C语⾔⽇期处C语⾔字符串加密和解密算法在本实例中要求设计⼀个加密和解密算法。在对⼀个指定的字符串加密之后,利⽤解密函数能够对密⽂解密,显⽰明⽂信息。加密的⽅式是将字符串中每个字符加上它在字符串中的位置和⼀个偏移值5。以字符串“mrsoft”为例,第⼀个字符“m”在字符串中的位置为0,那么它对应的密⽂是“'m'+0+5",即r。算法思想在main()函数中使⽤while语句设计⼀个⽆限循环,并定义两个字符数组,⽤来保存,明⽂和密⽂字符串,在⾸次循环中要求⽤户输⼊字符串,进⾏将明⽂加密成密⽂的操作,之后的操作则是根据⽤户输⼊的命令字符进⾏判断,输⼊1加密新的明⽂,输⼊2对刚加密的密⽂进⾏解密,输⼊3退出系统。#include#includeintmain(){intresult=1;inti;intcount=0;charText[128]={'\0'};charcryptograph[128]={'\0'};while(1){if(result==1){C语⾔输出等腰三⾓形本实例要求从键盘输⼊任意整数n,通过程序运⾏输出对应⾼度为n的等腰三⾓形。算法思想①设计以⾼度n为参数的⼀个函数,函数返回值为空,在函数体中实现等腰三⾓形的打印;图形的最终打印需要利⽤⼆层循环设计实现。②图形共输出n⾏,外循环变量i表⽰n⾏的输出,循环变量的变化范围为0~(n—1)。③循环变量j表⽰每⼀⾏的“*”号输出。由于每⼀⾏的输出不同,第j⾏输出空格的个数为(n—i),第j⾏输出“*”号的个数为(2*i+1)。控制“*”号输出的内循环变量j的变化范围为0~(2*i)。④在主函数中输⼊n作为实参,调⽤定义函数,打印等腰三⾓形。#includeinttrangle(intn){inti,j;for(i=0;i{for(j=0;j<=n-i;j++)putchar('');for(j=0;j<=2*i;j++)putchar('*');putchar('\n');}return0;C语⾔约瑟夫环问题编号为1,2,3,…,n的n个⼈围坐⼀圈,任选⼀个正整数m作为报数上限值,从第⼀个⼈开始按顺时针⽅向报数,报数到m时停⽌,报数为m的⼈出列。从出列⼈的顺时针⽅向的下⼀个⼈开始⼜从1重新报数,如此下去,直到所有⼈都全部出列为⽌。算法思想每个⼈的编号存放在⼀个数组a中,主函数中决定⼈数的个数以及报数的上限值m,设计⼀个函数实现对应的操作。函数的形参有整型数组a、整数n和m,n⽤来接收传递的⼈数,m⽤来接收报数上限,函数的返回值为空;函数体中输出出列⼈的顺序。函数中利⽤循环访问数组中n个元素,每次访问元素,设定内循环连续访问m个元素,元素访问的下标为k,访问到第m个元素时,如果元素不是0,此时输出元素a[k],再设定a[k]为0,继续访问后⾯的元素。主函数中设定数组a,从键盘输⼊n和m,利⽤循环产⽣n的位置序号存放到数组a中,调⽤函数实现相应的操作。#include#defineN100intjosef(inta[],intn,intm){inti,j,k=0;for(i=0;i{j=1;while(j{while(a[k]==0)k=(k+1)%n;j++;kC语⾔整数逆序输出将⼀个从键盘输⼊的整数存放到⼀个数组中,通过程序的运⾏按照数组中的逆序输出该整数,利⽤递归的⽅法解决问题。算法思想设计函数实现数据的逆序存放,设定形参数组接收实参数组的地址,来存储数据的每⼀位。函数体采⽤递归的⽅式解决问题,因此考虑递归进⾏的条件。例如,把数据n存放到数组s中,若n是⼀位数,则存放n到数组中;若n不是⼀位数,则存放n/10到数组中。问题解决的难点在于找到数据的存放地址,通过不断地取余和整除10来得到数据的每⼀位。为了实现数据的逆序存放,每⼀次整除10的时候,百川东到海,何时复西归?少壮不尽力,老大徒伤悲。——汉乐府《长歌行》宠辱不惊,看庭前花开花落;去留无意,望天上云卷云舒。——《洪应明》同时把存放数据的数组地址后移,这样得到的第⼀位数存放在数组的最后⼀位……通过依次前移,即递归的回归,实现整个数据的存放。通过函数convert()实现字符串中的数字的逆序转换。#includeintconvert(chars[],intn){inti;if((i=n/10)!=0)convert(s+1,i);*s=n%10+'0';return0;}intmain(){intnum;charstr[10]="";printf("inputint