- 实验作业
1.调试分析课本每一个例题,有可能的话更改成2-3个方法的新程序;
2.编程实现课本每一个编程习题。
3. 编程实现输入两个4X5矩阵和5X3矩阵,定义函数并在主函数中调用计算它们的积。
4.编程计算S[n]=1!+21+3!+...n!。要求定义两个函数,一个计算n!,一个计算s[n],在后一个函数中调用前一个函数。然后在主程序中输入数n的值,然后调用定义函数输出结果。
5.编写一个函数,输入一个十六进制数,输出相应的十进制数。
课本习题2
#include<iostream>
#include<iomanip>
using namespace std;
long intPower(int base,int cxpoment)
{
int i;
long tmp=1;
for(i=1;i<=cxpoment;i++)
tmp*=base;
return tmp;
}
int main()
{
int num,number;
long tmp;
cout<<"请输入一个数,以计算它的幂!! ";
cin>>num;
cout<<"\n请输入一个数,作为幂!!\t\t";
cin>>number;
tmp=intPower(num,number);
cout<<"\n\n结果为: "<<num<<'^'<<number<<" = "<<tmp<<"\n\n";
return 0;
}
课本习题3
#include <iostream>
#include <math.h>
using namespace std;
void fun(int n)
{
int i,j;
j = sqrt(n);
for(i = 2; i <= j; i++)
if(n % i == 0)//如果有整除的情况就退出for循环
break;
if(i == j + 1) //这里是判断执行完for循环后,是否有整除的情况
cout<<n<<"为素数\n";//如果没有,则是素数
else
cout<<n<<"不是素数\n";
}
int main()
{
int number;
cout<<"请输入一个正整数:";
cin>>number;
fun(number);
return 0;
}
课本习题4
#include<iostream>
using namespace std;
void fun(long num)
{
long i,tmp;
cout<<num<<" 的逆序数是 :";
for(i=10;;)
{
if(num==0)
break;
tmp=num%i;
num/=10;
cout<<tmp;
}
cout<<"\n\n";
}
int main()
{
int number;
cout<<"请输入一个十进制正整数!!>>>>>> ";
cin>>number;
fun(number);
return 0;
}
课本习题5
#include<iostream>
using namespace std;
char grade(int score)
{
char ch;
if (score>=90&&score<=100)
ch='A';
else if (score>=80)
ch='B';
else if (score>=70)
ch='C';
else if (score>=60)
ch='D';
else ch='E';
return ch;
}
int main()
{
int score;
char ch;
cout<<"请输入百分制成绩,范围为0 ~ 100 !!!\n\t";
cin>>score;
ch = grade(score);
cout<<" 该成绩对应的等级为: "<<ch<<"\n\n";
return 0;
}
课本习题6
#include<iostream>
using namespace std;
float average ()
{
float score[11],aver=0,sum=0;
int i;
cout<<" 请输入10个学生的成绩:"<<"\n\n";
for(i=1;i<10;i++)
{
cout<<" 第"<<i<<"个学生的成绩 = ";
cin>>score[i];
sum+=score[i];
}
aver=sum/10;
return aver;
}
int main()
{
float aver;
aver = average();
cout<<" 这10个学生的平均成绩为: "<<aver<<"分"<<"\n\n";
return 0;
}
习题3
#include<iostream>
#include<iomanip>
using namespace std;
int a[4][5],b[5][3],c[4][3]={0},i,j,k,tmp;
/************************************************/
void shuzu1()
{
cout<<"请输入矩阵a[4][5]的元素"<<"\n\n";
for(i=0;i<4;i++)
for(j=0;j<5;j++)
{
cout<<"a["<<i<<']'<<'['<<j<<"]=";
cin>>a[i][j];
}
}
/************************************************/
void shuzu2()
{
cout<<"请输入矩阵b[5][3]的元素"<<"\n\n";
for(i=0;i<5;i++)
for(j=0;j<3;j++)
{
cout<<"a["<<i<<']'<<'['<<j<<"]=";
cin>>b[i][j];
}
}
/************************************************/
void count()
{
for(i=0;i<4;i++)
for(j=0;j<3;j++)
{
for(k=0;k<5;k++)
{
tmp=a[i][k]*b[k][j];
c[i][j]=c[i][j]+tmp;
}
}
}
/************************************************/
void display()
{
cout<<"矩阵a[4][5]与b[5][3]的乘积为:"<<"\n\n";
for(i=0;i<4;i++)
{
for(j=0;j<3;j++)
cout<<setw(5)<<c[i][j];
cout<<'\n';
}
}
/************************************************/
int main()
{
cout<<"计算矩阵a[4][5]与矩阵b[5][3]的积"<<endl;
shuzu1();
shuzu2();
count();
display();
return 0;
}
习题4
#include<iostream>
using namespace std;
double num,i,j=1,temp=0;
/************************************************/
double nn()
{
j*=i;
return j;
}
/************************************************/
double add()
{
for(i=1;i<=num;i++)
temp+=nn();
return temp;
}
/************************************************/
void display()
{
cout<<num<<"!="<<j<<'\n';
cout<<"累加之和为:"<<temp<<"\n";
}
/************************************************/
int main()
{
cout<<"请输入一个正整数计算其阶乘!!!\n\n";
cin>>num;
add();
display();
return 0;
}
习题5
#include<iostream>
#include<iomanip>
using namespace std;
void htod()
{
int num;
cout<<"请输入一个十六进制数!!!\n"
<<"你输入的十六进制数为: ";
cin>>hex>>num;
cout<<dec<<"\n你输入的十六进制数装换为十进制数为: "
<<num<<" \n\n";
}
int main()
{
htod();
return 0;
}