C++题目求助
从键盘输入的5个学生的姓名寸放到二维数组中,输出原始数组,再按字母降序排列,输出排序后的数组;任意输入一个人名,若找到该学生,则输出“XXX已找到!”,否则,则输出“XXX未找到”
从键盘输入一个八进制数,输出对应的十进制正整数。
例如(512)=5*8^2+1*8^1+2*8^0=(330)
用递归方法,计算1*1*1+2*2*2+3*3*3+......+n*n*n,N的值由键盘输入
f(n)=1
当n=1时
{
{
n*n*n+f(n-1) 当n>1时
用模块程序化程序设计的方法(主函数加用户定义函数),通过显示菜单,选择不同编号来实现相应的功能来完成程序的设计。
1) 判断用户输入的密码是否正确(“假设正确的密码是abcedf”),如果正确,则显示”密码正确!”;若密码不正确,则显示”密码不正确!请重新输入”,密码输入错误时,允许用户重复输入3次;当3次输入的密码不正确时将显示”再见!”.
2) 从键盘输入一个二进制数,输出对应的十进制正整数.
3) 任意输入6个英文单词,按降序排序后,重新输出.
答案:1./////////////////////
#include<iostream.h>
#include<string.h>
int main()
{
char s[5][100];//s保存学生姓名
int i,j;
for(i=0;i<5;i++)
{
cout<<"输入姓名:"<<endl;
cin>>s[i];
}
cout<<"输入的5个学生姓名为:"<<endl;
for(i=0;i<5;i++)cout<<s[i]<<endl;
for(i=4;i>0;i--)
for(j=0;j<i;j++)
if(strcmp(s[j],s[j+1])<0)
{
char t[100];
strcpy(t,s[j]);
strcpy(s[j],s[j+1]);
strcpy(s[j+1],t);
}
cout<<"按字母降序排列"<<endl;
for(i=0;i<5;i++)cout<<s[i]<<endl;
char f[100];
cout<<"输入要查找的学生姓名:";
cin>>f;bool find=false;
for(i=0;i<5;i++)
if(!strcmp(f,s[i]))
{
find=true;
break;
}
if(find)cout<<f<<"已找到"<<endl;
else cout<<f<<"未找到"<<endl;
return 0;
}
2.////////////////////////////
#include<iostream.h>
#include<math.h>
int change(int n)//八进制数转十进制数
{
int a[100],i=0,j,k=0;
while(n)
{
a[i++]=n%10;
n/=10;
}
for(j=0;j<i;j++)
{
a[j]*=pow(8,j);
k+=a[j];
}
return k;
}
int main()
{
int n,k;
cout<<"输入要转换的8进制数:";
cin>>n;
k=change(n);
cout<<"转换为10进制数:"<<k<<endl;
return 0;
}
3.//////////////////////////////
#include<iostream.h>
int f(int n)//计算1*1*1+2*2*2+3*3*3+......+n*n*n
{
if(n==1)return 1;
else return n*n*n+f(n-1);
}
int main()
{
int n;
cout<<"输入一个正整数:";
cin>>n;
cout<<f(n)<<endl;
return 0;
}
////////////////////////////
4.选择操作
#include<iostream.h>
#include<string.h>
#include<math.h>
void fun1()//输入密码函数
{
char s[100],key[]="abcdef";//key保存正确的密码
int k=0;
while(k<3)//允许重复3次
{
cout<<"输入密码:";
cin>>s;
if(!strcmp(s,key))//输入正确的密码
{
cout<<"密码正确!"<<endl;
return;
}
else
{
if(k<2)
{
cout<<"密码不正确!请重新输入"<<endl;
k++;
}
else break;
}
}
cout<<"密码不正确!"<<endl<<"再见"<<endl;//3次不正确输出再见
}
void fun2()//2进制转10进制函数
{
int a[100],i=0,j,k=0,n;//a足够大
cout<<"输入要转换的2进制数:";
cin>>n;
while(n)
{
a[i++]=n%10;
n/=10;
}
for(j=0;j<i;j++)
{
a[j]*=pow(2,j);
k+=a[j];
}
cout<<"转换后的数为:"<<k<<endl;
}
void fun3()//输入6个单词降序排列
{
char s[6][100];
int i,j;
for(i=0;i<6;i++)
{
cout<<"输入单词:"<<endl;
cin>>s[i];
}
for(i=5;i>0;i--)//冒泡排序
for(j=0;j<i;j++)
if(strcmp(s[j],s[j+1])<0)
{
char t[100];
strcpy(t,s[j]);
strcpy(s[j],s[j+1]);
strcpy(s[j+1],t);
}
cout<<"降序排序的结果为"<<endl;
for(i=0;i<6;i++)cout<<s[i]<<endl;
}
int main()
{
int select=0;
do
{
cout<<"请选择操作:\n1 输入密码测试\n2 二进制转换\n3 输入6个单词排序\n0 退出"<<endl;
cin>>select;
switch(select)
{
case 0:break;
case 1:fun1();break;
case 2:fun2();break;
case 3:fun3();break;
default:cout<<"输入错误!重新输入!"<<endl;
}
cout<<end
上一个:C++编程问题
下一个:vb与c++哪个更有用