1.有n个数,已按由小到大的顺序排序,要求输入一个数,把它插到原有数列中,而且仍然保持有序,同时输出新的数列。
2.编写一个测试函数,测试某一正整数的各位数字是否由素数组成,在主函数中输入一个正整数,输出测试结果。(测试数值如135,105,245)
3.编写一程序,计算并输出复数四则运算的结果,要求复数加减乘除分别用四个函数实现。(要求复数用结构体表示)
例如
(3+4i)+(1+2i)=
(3+4i)-(1+2i)=
(3+4i)*(1+2i)=(3*1-4*2)+(3*2+4*1)i
(3+4i)/(1+2i)=(3*1+4*2)/(1*1+2*2)+(3*2-4*1)/ (1*1+2*2)i
哪位大侠帮忙弄一下
急需
说明下:
问题1:用的数组来进行顺序表表示的,数组中的数字是自己输入,不需要按照从小到大输入,程序会里面有个从小到大排序的函数。
问题2: 程序2参照了 inonomori 朋友的格式,但是 inonomori朋友的复数判定里面的else语句本人觉得写得不够妥,改善了下。
问题3:只能附上一个图片,就把程序3的运行示例附上来了。。。。
程序1:
#include <iostream>
using namespace std;
#define N 30
void sortNum(int a[],int n) // 从小到大排序
{
int temp;
int i,j;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
}
void insertNum(int a[],int num,int &n)
{
if(num>a[n-1])
{
a[n++]=num;
return ;
}
n++;
for(int i=n-2;i>=0;i--)
{
if(num < a[i])
{
a[i+1]=a[i];
a[i]=num;
}
else
{
return ;
}
}
}
void showData(int a[],int n)
{
for(int i=0;i<n;i++)
{
if(i%5==0)
cout<<endl;
cout<<a[i]<<" ";
}
}
int main()
{
int array[N];
int n=0;
cout<<"请输入数组中数字的数目:"<<endl;
cin>>n;
cout<<"请分别输入这些数:"<<endl;
for(int i=0;i<n;i++)
cin>>array[i];
sortNum(array,n);
cout<<"排序后数组为:"<<endl;
showData(array,n);
cout<<endl;
cout<<"请输入你要插入的数"<<endl;
int num;
cin>>num;
insertNum(array,num,n);
cout<<"当前数组为:"<<endl;
showData(array,n);
cout<<endl;
return 0;
}
======================================================================
程序2:
#include <iostream>
#include <cmath>
using namespace std;
void pn(int tem){
int b=0;
if (tem<2)
b=1;
else if (tem==2)
b=0;
else{
int i;
for (i=2;i<=(int)sqrt(tem);i++)
{
if (tem%i==0)
b=1;
}
}
if (b==1)
cout<<"not prime number!"<<endl;
else if (b==0)
cout<<"prime number!"<<endl;
}
int main()
{
int x;
cout<<"input value:";
cin>>x;
int i;
for (i=0;x>0;i++)
{
cout<<x%10<<"---";
pn(x%10);
x=(int) x/10;
}
return 0;
}
====================================================
程序3
#include <iostream>
using namespace std;
struct COMPLEX
{
double real;
double imag;
};
void inputData(COMPLEX &c)
{
cout<<"请分别输入该数的实部和虚部:"<<endl;
cin>>c.real>>c.imag;
}
void showData(COMPLEX c)
{
cout<<c.real;
if(c.imag>0)
cout<<"+";
cout<<c.imag<<'i';
}
void comAdd(COMPLEX a,COMPLEX b,COMPLEX &c)
{
c.real=a.real+b.real;
c.imag=a.imag+b.imag;
}
void comSub(COMPLEX a,COMPLEX b,COMPLEX &c)
{
c.real=a.real-b.real;
c.imag=a.imag-b.imag;
}
void comMul(COMPLEX a,COMPLEX b,COMPLEX &c)
{
c.real=a.real*b.real-a.imag*b.imag;
c.imag=a.real*b.imag+a.imag*b.real;
}
void comDiv(COMPLEX a,COMPLEX b,COMPLEX &c)
{
c.real=(a.real*b.real+a.imag*b.imag)/(b.real*b.real+b.imag*b.imag);
c.imag=(a.real*b.imag-a.imag*b.real)/(b.real*b.real+b.imag*b.imag);
}
int main()
{
COMPLEX a,b,c;
cout<<"请输入第一个复数:"<<endl;
inputData(a);
cout<<"你输入的复数是:";
showData(a);
cout<<endl<<"请输入第二个复数:"<<endl;
inputData(b);
cout<<"你输入的复数是:";
showData(b);
cout<<endl;
cout<<"加法结果为:";
comAdd(a,b,c);
showData(c);
cout<<endl<<"减法结果为:";
comSub(a,b,c);
showData(c);
cout<<endl<<"乘法结果为:";
comMul(a,b,c);
showData(c);
cout<<endl<<"除法结果为:";
comDiv(a,b,c);
showData(c);
cout<<endl;
return 0;
}