用C/C++解决一些数学问题(二)

来源:互联网 发布:淘宝店铺标志源码 编辑:程序博客网 时间:2024/05/17 05:09

1:在日常生活中,一大堆数据,我们要求出这些数据的最大值,这里以整数为例,主要也是重新缕清一下思路

      需求:求出20个数中的最大的数,并且输出:

#include <iostream>using namespace std;int main(){while (true){int a[20];for(int i=0;i<20;i++){cout<<"请输入第"<<i+1<<"个数:";cin>>a[i];}for(int j=0;j<20;j++){if(j==0){a[j]=a[j];}else{if(a[j]>a[j-1]){a[j]=a[j];}else{a[j]=a[j-1];if(j==19){cout<<"最大的数是:"<<a[j]<<endl;}}}}}}
运行结果:


         上面的代码显的过于臃肿,且执行效率不高,另外这个框架限制的条件比较死,能不能实现确定多少个数,然后再求出这些数的最大值呢

         需求更改:事先确定多少个数,然后输入指定数量的数,求出最大值,代码如下:

      

#include <iostream>using namespace std;int main(){while (true){int n;cout<<"请输入你统计的数的数量:";cin>>n;int max;int mm;for(int i=0;i<n;i++){cout<<"请输入第"<<i+1<<"个数:";cin>>mm;if(i==0){max=mm;}else{if(max<mm){max=mm;}}}cout<<"这"<<n<<"个数最大的数是:"<<max<<endl;}}
运行结果:



2:有时候,一个很长的字符串,我们想将这个字符串全部倒过来,或者全部变成大小写,甚至给这个字符串加密,或者解密等等,我们该怎么处理这些字符串呢

         需求:用户输入一段字符,按指定的要求对这个字符串进行加密,然后再排列,最后将密文输出;如果用户选择解密的字符,那么用户输入密文,将密码原文输出

                   要求1:这段程序用户可以选择加密或者解密,加密执行对应的加密程序,解密执行对应的解密程序

                           2:加密过程是将字符串全部颠倒过来,然后根据颠倒过来的每个字符的ascii值,根据字符串的长度,和字符所在的位置生成密文

                           3:加密解密可以选择

        根据大致分析,代码如下:

#include <iostream>using namespace std;int main(){while (true){int a;cout<<endl<<"===================================="<<endl;cout<<"选择功能,1:加密\t 2:解密"<<endl<<"请选择:";cin>>a;char str[20];int lenth;char mstr[20];switch (a){case 1:cout<<"输入要加密的字符串:";cin>>str;lenth=strlen(str);for(int i=0;i<=lenth;i++){if(i<lenth){mstr[i]=str[lenth-i-1];}else{mstr[i]='\0';}}for(int j=0;j<lenth;j++){mstr[j]=mstr[j]+lenth-j;}cout<<"加密好的密文:"<<mstr<<endl;break;case 2:cout<<"输入要解密的密文:";cin>>mstr;lenth=strlen(mstr);for (int i = 0; i < lenth; i++){mstr[i]=mstr[i]-lenth+i;}for(int i=0;i<=lenth;i++){if(i<lenth){str[i]=mstr[lenth-i-1];}else{str[i]='\0';}}cout<<"密码原文是:"<<str<<endl;break;default:break;}}}
运行结果:


3:经常会查询一个字符串里一共含有指定的字符多少个

       代码如下:

#include <iostream>using namespace std;int fun1(char str[],char n);int main(){while(1){char str1[300];char n;cout<<"输入字符串:";cin>>str1;cout<<"输入包含的字符:";cin>>n;int mm=sizeof(str1);cout<<"一共包含的个数:"<<fun1(str1,n)<<endl;}}int fun1(char str[],char n){char str1[300];strcpy_s(str1,sizeof(str1),str);int lenth=sizeof(str1);int num=0;for(int i=0;i<lenth;i++){if(str[i]==n){num=num+1;}}return num;}

运行结果:




0 0
原创粉丝点击