第七周任务

1.调试分析课本每一个例题,有可能的话更改成2-3个方法的新程序;


2.编程实现课本每一个编程习题。

不用库函数,自已编写求整数次幂的函数longintPower(intbase, intexponent),求baseexponent次幂

#include<iostream.h>
long intPower(int b,int e) ;
void main()
{
  long n;
  int b,e;
n=intPower(b,e);
}
long intPower(int b,int e)  //求base的exponent次幂。

{  
  long x,q;
  int i;
  cin>>b>>e;
  q=b;
  if(e==0)
  q=1;
  else
  {
for(i=1; i<e;i++)
  q=q*b;
  }x=q;
  cout<<"x="<<x<<endl;
  return x;
}



编写判断一个正整数是否是素数的函数

#include<iostream.h>
void mm()
{int i,n;
cin>>n;
for(i=2;i<n;++i)
if(n%i==0)
break;
if(i==n)
 cout<<n<<"is a prime number"<<endl;
 else
 cout<<n<<"is not a prime number"<<endl;
}
void main()
{ 
  mm();
}

编写一个函数,返回与所给十进制正整数数字顺序相反的整数。如已知整数是1234,函数返回值是4321

 #include<iostream.h>
void daoxu()
{  int a[3],i;
   for(i=0;i<3;i++)
cin>>a[i];
   cout<<endl;
   for(i=2;i>=0;i--)
   cout<<a[i]<<endl;
}
void main()
{
  daoxu();
}

编写一个函数,按所给的百分制的成绩分数,返回与该分数对应的等级代号字符

#include<iostream.h>
void m()
{ char grade;
  cin>>grade;
  if(grade>='a'&&grade<='z')
  grade-=32;
  switch(grade)
  {case'A':cout<<"90--100\n";break;
   case'B':cout<<"80--89\n";break;
   case'C':cout<<"70--79\n";break;
   case'D':cout<<"60--69\n";break;
   case'E':cout<<"<60\n";break;
   default:cout<<"error\n";
  }
}
void main()
{
  m();
}
写一个函数,内放10个学生成绩,求平均成绩

#include<iostream.h>
int averge()
{
  int a[10],i,b;
  int v;
  cout<<"intput  10   numbers:"<<endl;
  for(i=0;i<10;i++)
  cin>>a[i];
  b=a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7]+a[8]+a[9];
  v=b/10;
    cout<<"v="<<v<<endl;
  return v;
  cout<<"v="<<v<<endl;
}
void main()
{
  averge();
}
写两个函数,分别求两个整数的最大公约数和最小公倍数。用主函数调用这两个函数,并输出结果,两个整数由键盘输入




#include<iostream.h>
int yueshu(int m,int n) 
{
  if(m==n)return m;
  else
  {
  while(n!=0)
  {
  if(m>n)
  {
  n=m-n;
  m=m-n;
  }
  else n=n-m;
  }
  return m;
  }
}
int beishu(int x,int y)
{
  return x*y/yueshu(x,y);
}
void main()
{
  int a,b;
  cout<<"Please input two numbers:";
  cin>>a>>b;
  int c=yueshu(a,b);
  cout<<"最大公约数是:"<<c<<endl;
  int d=beishu(a,b);
  cout<<"最小公倍数是:"<<d<<endl;
}

编写三个函数以三种不同的方式输出乘法口诀表:

⑴ 将99列乘法表全部输出

⑵ 输出乘法表中主对角线以上的元素

⑶ 输出乘法表中主对角线以下的元素(3个合成一个)

#include<iostream.h>
#include<iomanip.h>
void cout1()
{
for(int i=1;i<10;i++)
	{
for (int j=1;j<10;j++)
			cout<<i<<"*"<<j<<"="<<i*j<<" ";
		cout<<endl;
	}
}
void cout2()
{
	for(int i=1;i<10;i++)
	{
		for (int j=1;j<10;j++)
		{
			if(i>=j)
			cout<<i<<"*"<<j<<"="<<i*j<<" ";
		}
		cout<<endl;
	}
}
void cout3()
{
	for(int i=1;i<10;i++)
	{
for (int j=1;j<10;j++)
		{
			if(j>=i)
			cout<<i<<"*"<<j<<"="<<setw(2)<<i*j<<" ";
			else
				cout<<"       ";
		}
		cout<<endl;
	}
}

void main()
{
	cout1();cout<<endl<<endl;
	cout2();cout<<endl<<endl;
	cout3();
} 


3. 编程实现输入两个4X5矩阵和5X3矩阵,定义函数并在主函数中调用计算它们的积。
#include<iostream>
using namespace std;
int main()
{
 int a[4][5],b[5][3],c[4][3];
 int i,j,k;
 
 for(i=0;i<4;i++)
     for(j=0;j<5;j++)
   cin>>a[i][j];

 for(i=0;i<5;i++)
  for(j=0;j<3;j++)
   cin>>b[i][j];

 for(i=0;i<4;i++)
  for(j=0;j<3;j++)
   c[i][j]=0;

 for(i=0;i<4;i++)
     for(k=0;k<3;k++)
   for(j=0;j<5;j++)   
    c[i][k]+=a[i][j]*b[j][k];
    for(i=0;i<3;i++)
 {
  for(j=0;j<3;j++)
   cout<<c[i][j]<<" ";
  cout<<endl;
 }
 return 0;
}



4.编程计算S[n]=1!+21+3!+...n!。要求定义两个函数,一个计算n!,一个计算s[n],在后一个函数中调用前一个函数。然后在主程序中输入数n的值,然后调用定义函数输出结果。
#include<iostream>
using namespace std;
int f(int n)
{
if(n==1)
return 1;
else
return f(n-1)*n;
}
void main()
{int n;
 long t=1,s=0;
 cout<<"请输入一个数";
 cin>>n;
 for(int i=1;i<=n;i++)
 { t=t*i;
   s=t+s;}
  cout<<n<<"!="<<f(n)<<endl;
  cout<<"s="<<s<<endl;
  cout<<"n="<<n<<endl;
}



5.编写一个函数,输入一个十六进制数,输出相应的十进制数。

#include<iostream>
using namespace std;
long fun(char *s)
{
    int i,t;
    long sum=0;
    for(i=0;s[i];i++)
    {
        if(s[i]<='9') t=s[i]-'0';
        else t=s[i]-'a'+10;
        sum=sum*16+t;
    }
    return sum;
}
main()
{    
    long m;
    char s[50];
    cout<<"请输入十六进制数: ";
    cin>>s;
    m=fun(s);
    cout<<"十进制数为:"<<m<<endl;
}



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值