同济大学c++实验1到实验8前三题_第1页
同济大学c++实验1到实验8前三题_第2页
同济大学c++实验1到实验8前三题_第3页
同济大学c++实验1到实验8前三题_第4页
同济大学c++实验1到实验8前三题_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验4:

1.

ttinclude“iostream,h”

voidmain()

{intn,sum=O;

for(n=l;;sum+=n,n+=2)

if(n>=20)break;

cout«,,sum=,,«sum<<endl;

I

2.

#includeuiostream.h"

voidmain()

{intx;

cout«Minputx:*,«endl;

cin>>x;

if(x==0)

cout<<,,0//;

else

while(x!=0)

{cout<<x%10;

x=x/10;

cout«endl;

3.

#include“iostream,h”

voidmain()

{inti,t=l;

floats=0;

for(i=l;1.0/t>le-4;i++)

{s=s+L0/t;

t=t+i;

}

cout<<,,s=,,<<s<<endl;

I

4.

#includeuiostream.h"

voidmain()

{doublepi=l,t=2;

intn;

for(n=l;t>le-4;n++)

{pi=pi*t;

t=(float)((2*n)*(2*n))/((2*nT)*(2*n+l));

!

cout<Cpi=,,«pi«endl;

i

5.(1)

#include''iostream.h"

#include“iomanip.h"

voidmain()

{inti,j;

for(i=l;i<=9;i++)

{cout<<setw(20~i);

for(j=l;j<=2*i-l;j++)

cout<<i;

cout<<endl;

I

)

5.(2)

#include4<iostream.h"

#include44iomanip.h"

voidmain()

{inti,j;

charc;

for(i=9;i>=l;i-)

{cout«setw(9-i)«,,z,;

c=9-i+'A';

for(j=l;j<=2*i;j++)

cout«c;

cout<<endl;

}

)

6.

#include4<iostream.h"

voidmain()

{intm,ml,m2,m3;

for(m=100;m<l000;m++)

{ml=m%10;

m2=m/10%10;

m3=m/100;

if+m2*m2*m2+m3*m3*m3=m)

I

1

7.

ttinclude“iostream,h”

#includeuiomanip.h"

voidmain()

{intx,y,z,k=0;

for(x=l;x<=6;x++)

for(y=x+l;y<=6;y++)

for(z=5;z<=6;z++)

if(x<y&&y<z)

{k++;

cout«x«,\t,«y«,\t,«z«endl;

I

cout<〈”满足条件的方案有:J,«k«endl;

I

8.

#includeuiostream.h”

^include"stdlib.h"

#include"time,h”

voidmain()

{inta,n,i,k;

doubles=0,temp=0;

srand(time(NULL));

a=rand()%9+l;

n=rand()%6+5;

for(i=l;i<=n;i++)

{temp=temp*10+a;

s=s+temp;

)

cout«,,s=M<<s«endl;

i

9.

#include“iostream,h”

#include"math,h”

voidmain()

{floata,x,xl;

cin>>a;

x二a;

do

{xl=x;

x=2.0/3*x+a/(3*x*x);

}while(fabs(x-xl)>le-5);

cout〈〈”编程求得x二”<Xx«endl;

cout«”调用函数求得x="<<pow(a,L0/3)«endl;

实验5:

#include"stdlib.h"

ttinclude“iostream,h”

voidmain()

{inta[10],i,max,min;

floatave;

for(i=0;i<10;i++)

a[i]=rand()%71+30;

cout«”数组a的内容如下:\n”;

for(i=0;i<10;i++)

cout«a[i]«,

cout«endl;

max=min=ave=a[0];

for(i=l;i<10;i++)

{ave=ave+a[i];

if(a[i]>max)

max=a[i];

if(a[i]<min)

min=a[i];

}

cout<<"max="<<max<<",min=v<<min«,\ave=,,<<ave/10<<endl;

1

2.#include<iostream.h>

^defineN20

#include"stdlib.h"

voidmain()

{inta[N],i,j,k;

cout«"排序前:\n”;

for(i=0;i〈N;i++)

{a[i]=rand()%101;

cout«a[i]«,\

)

for(i=0;i<N-l;i++)

{k=i;

for(j=i+l;j<N;j++)

if(a[j]>a[k])

k二j;

if(k!=i)

{intt=a[k];a[k]=a[i];a[i]=t;}

}

cout<<”排序后:\n”;

for(i=0;i<N;i++)

cout«a[i]«,*;

I

3.

#include“iostream,h”

ttinclude“stdlib.h"

voidmain()

{inti,j,s[10],t,n;

for(i=0;i<10;i++)

{s[i]=rand()%101;

cout«s[i]«,*

}

cout«endl;

cin>>n;

for(j=0;j<n;j++)

{t=s[9];

for(i=8;i>=0;i-)

(

s[i+l]=s[i];

}

s[0]=t;

}

for(i=0;i<10;i++)

cout«s[i]«,*

}

4.

见第四章习题编程题1答案。

5.

(1)

ttinclude<iostream.h>

^include<iomanip.h>

voidmain()

{inta[10][10],i,j,n;

cin»n;

for(i=0;i<n;i++)

(

a[i][0]=l;

a[i][i]=l;

)

for(i=2;i<n;i++)

for(j=l;j<i:j++)

a[i][j]=a[i-l][j]+a[i-l][j-1];

for(i=0;i<n;i++)

{

for(j=0;j<=i;j++)

(

cout«setw(6)«a[i][j];

)

cout«endl;

}

)

(2)

ttinclude<iostream.h>

ttinclude<iomanip.h>

voidmain()

{inta[10][10],i,j,n;

cin>>n;

for(i=0;i<n;i++)

I

a[i][0]=l;

a[i][i]=l;

}

for(i=2;i<n;i++)

for(j=l;j<i;j++)

a[i][j]=a[i-l][j]+a[i-l][j-1];

for(i=0;i<n;i++)

(

cout<<setw((n-i)*3)<<M44;

for(j=0;j<=i;j++)

I

cout«setw(6)«a[i][j];

1

cout<<endl;

}

}

6.

方法•:

#include“stdio.h"

#include“string,h”

voidmain()

{chars[80],ch;

inti,len;

gets(s);

len=strlen(s);

for(i=0;i<len/2;i++)

{ch=s[i];

s[i]=s[len-i-l];

s[len-i-l]=ch;

}

puts(s);

I

方法二:

^include"stdio.h"

#include“string,h”

voidmain()

{char*p,*pl,*p2,ch;

inti,len=0;

p=pl=p2=newchar[80];

gets(pl);

while(*p2!=,\0/)

p2++;

p2-;

while(pl<p2)

{ch=*pl;

*pl=*p2;

*p2=ch;

pl++;

p2-;

}

puts(p);

!

7.

^include"stdio.h"

#includeuiostream.h"

voidmain()

{chars[80],ch;inti,j;

gets(s);

cin>>ch;

while(l)

{for(i=0;s[i]!=,\0,;i++)

if(s[i]==ch)break;

if(s[i]==,\0,)break;

for(j=!='\0';j++)

s[j]=s[j+l];

s[j]=>\O/;

)

puts(s);

)

8.

方法一:

ttinclude<iostream.h>

ftinclude"stdio.h"

voidmain()

{chars[80];

gets(s);

inti=0;

while(s[i]!=,\0,)

(

if(s[i]>=)A,&&s[i]<=,Z')

s[i]=sEi]+32;

i++;

}

puts(s);

)

方法::

ttinclude"stdio.h"

voidmain()

{chars[80],*p=s;

gets(s);

while(*p!=,\0,)

I

if(*p>='A'&&*p<='Z')

*p二*p+32;

p++;

I

puts(s);

|

实验6:

1.编一判断m是否为素数的函数,并在主函数中利用它输出十对最小的季生素数。所谓挛

生素数是指两个相差为2的素数,如3和5,11和13。输出形式如图2.6.1。

函数形式为:

boolisprime(intm);

#include4tiostream.h"

intisprime(intm)〃判别m是否为质数

{inti;

for(i=2;m%i!=0;i++);

return(i==m);

voidmain()

{intx,count=0;

x=2;

while(l)

{if(isprime(x)&&isprime(x+2))

{count++;

cout«”(“<〈x«”,”<<x+2<〈")“《endl;

if(count>=10)break;

i

x++;

I

2.编一函数,功能为构造正整数x的逆序数。再编一主函数,输出10个大于10000的最小的

回文数。回文数是指顺读和倒读都相同的数,如5、151、3553等。

函数形式为:intreverse(intx);

#inc1udeviostream.h"

ttinclude^stdlib.hv

#include"time.h"

intf(inta)

{intb,c=0;

while(a!=0)

{b=a%10;

c=c*10+b;

a/=10;

returnc;

}

voidmain()

{intx,i,k=0,t;booltag=true;

srand(time(NULL));

for(x=10000;k<10;x++)

if(f(x)==x)

{cout«x«endl;k++;if(k==10)break;}

}

3.编一函数,功能为判断一字符串是否为回文,如果是回文则返回1,否则返回0。回文是

指顺读和倒读都一样的字符串,如“deed”和“level”是回文。在主函数中对输入的字符串加

以调用。

函数形式为:inthuiwen(chars口);

ttinclude<iostream.h>

#include<string.h>

#include<stdio.h>

inthuiwen(chars[])

inti,n=0;

charch,si[80];

strcpy(sl,s);〃原来的字符串保留在si中

while(s[n])n++;〃求字符串长度

for(i=0;i<n/2;i++)〃构造逆序的字符串

{ch=s[i];s[i]=s[n-i-l];s[n-i-l]=ch;}

if(strcmp(sl,s)==0)

return1;

else

return0;

voidmain()

{chars[80];inti,count=0;

cout<<"输入5个字符串:M«endl;

for(i=0;i<5;i++)

{gets(s);

if(huiwen(s))count++;

|

cout<<”回文个数:"<<count«endl;

4.函数的功能是将学生成绩从高分到低分排序,并统计优秀与不及格的人数。用下面两种

方法实现:

(1)函数形式为:intfun(ints[],intn,int*x);

要求优秀人数通过return返回,不及格人数通过指针参数返回结果。

(2)函数形式为:voidfun(ints[],intn,int&x,int&y);

要求优秀与不及格的人数通过引用参数返回结果。

分别编二个程序,学生数从键盘输入。

方法一:

ftinclude<iostream.h>

#defineN10

intfun(inta[],intn,int*x)

{inti,j,k;

*x=0;

for(i=0;i<n-l;i++)

{k=i;

for(j=i+l;j<n;j++)

if(a[j]>a[k])

k二j;

if(k!=i)

{intt=a[k];a[k]=a[i];a[i]=t;}

for(i=0;i<n;i++)

if(a[i]>=60)

*x=*x+l;

return(n-*x);

)

voidmain()

{inta[N],i,n,pass,npass;

cin>>n;

for(i=0;i<n;i++)

cin>>a[i];

npass=fun(a,n,&pass);

,,,,,,=,,

cout«pass=«pass<<)npass«npass<<endl;

cout<<”成绩由高到低依次为:\n”;

for(i=0;i<n;i++)

cout<<a[i]<<endl;

}

方法2:

ttinclude<iostream.h>

#defineN10

voidfun(inta[],intn,int&x,int&y)

{inti,j,k;

x=0;

for(i=0;i<n-l;i++)

{k=i;

for(j=i+l;j<n;j++)

if(a[j]>a[k])

k=j;

if(k!=i)

{intt=a[k];a[k]=a[i];a[i]=t;}

for(i=0;i<n;i++)

if(a[i]>=60)

x=x+l;

y二n-x;

voidmain()

{inta[N],i,n,pass,npass;

cin»n;

for(i=0;i<n;i++)

cin>>a[i];

fun(a,n,pass,npass);

,,,,,,=,,

cout<<pass=<<pass<<Jnpass<<npass<<endl;

cout<<”成绩由高到低依次为:\n”;

for(i=0;i<n;i++)

cout<<a[i]«endl;

}

5.编一函数,功能为统计字符串中各个字母(不区分大、小写)出现的频率,同时找出频

率出现最高的字母及次数。。函数形式为:

voidfreq(chars[],intp[],char&chmax,int&max)

#include4tiostream.h"

^include“stdio.h"

#include“string,h”

voidfreq(chars[],intp[],char&chmax,int&max)

{for(inti=0;i<26;i++)

p[i]=0;

strlwr(s);

i=0;

while(s[i]!=,\OZ)

{if)

p[s[i]-,a,]++;

i++;

max=p[0];intk=0;

for(i=l;i<26;i++)

if(p[i]>max)

{max=p[i];k=i;}

chmax=k+97;

)

voidmain()

{intp[26],i,max;chars[80],chmax;

gets(s);

freq(s,p,chmax,max);

for(i=0;i<26;i++)

if(p[i])cout<<char(i+97)«n—-v«p[i]<<endl;

cout<<chmax<<v—->,<<max«endl;

}

6.编写函数max,其功能是将字符串s中最大字符的地址返回,再编写一个主函数,调用该

函数,将字符串s中从最大字符开始的子串中的小写字母转换成大写字母,然后输出新字符

串s。例如,假设s的内容为“qwertyou”,则从最大字符V开始的子串为“you”,处理后的s为

“qwertYOU”。

函数形式为:char*max(chars口);

#includeuiostream.h"

^include“string/”

#include"stdio.h"

char*max(chars[])

{char*p=s;

inti=l,imax=0;

while(s[i]!=,\0/)

{if(s[i]>s[imax])imax=i;

i++;

while(s[imax]!=?\0/)〃等价于strupr(&s[imax]);

{s[imax]-=32;imax++;}

returnp;

}

voidmain()

{chars[100];

gets(s);

cout<<max(s)<<endl;

|

7.编一函数,求级数的部分和,当最后一项的值小于eps时结束。设eps的默认值为10-6o

函数形式为:

doublefun(doublex,doubleeps=le-6);

#include<iostream.h>

#include<math.h>

doublefun(doublex,doubleeps=le-6)

{intn=l;

doublet=l,s=0;

while(fabs(x/t)>le-6)

s=s+x/t;

n=n+2;

t=-t*n*(n-1);

}

returns;

voidmain()

{doublex;

cin>>x;

cout«fun(x)<<endl;

}

8.编写两个同名的函数,分别求出整型数的两点间距离和浮点型数的两点间距离,调试成

功后,再将其改为用函数模板实现。

函数形式为:

doubledist(intxl,intyl,intx2,inty2);

doubledist(doublexl,doubleyl,doublex2,doubley2);

#include<iostream.h>

#include<math.h>

doubledist(intxl,intyl,intx2,inty2)

return(sqrt((xl-x2)*(xl-x2)+(yl-y2)*(yl-y2)));

doubledist(doublexl,doubleyl,doublex2,doubley2)

return(sqrt((xl-x2)*(xl-x2)+(yl-y2)*(yl-y2)));

voidmain()

{intxl,x2,yl,y2;

doublexll,xl2,yll,yl2;

cin»xl»yl»x2»y2;

cin»xll»yll»xl2»yl2;

cout«,,distl=,,«dist(xl,yl,x2,y2)<<endl;

cout<Cdist2=,,«dist(xll,yll,xl2,yl2)«endl;

i

用函数模板来实现:

#include<iostream.h>

#include<math.h>

template<classT>

doubledist(Txl,Tyl,Tx2,Ty2)

return(sqrt((xl-x2)*(xl-x2)+(yl-y2)*(yl-y2)));

)

voidmain()

{intxl,x2,yl,y2;

doublexll,xl2,yll,yl2;

cin»xl»yl»x2»y2;

cin>>xlI»yll>>xl2»yl2;

cout<<vdistl=,,«dist(xl,yl,x2,y2)«endl;

cout<Cdist2=,,«dist(xll,yll,xl2,yl2)«endl;

I

实验6:

1.编一判断m是否为素数的函数,并在主函数中利用它输出十对最小的学生素数。所谓挛

生素数是指两个相差为2的素数,如3和5,11和13。输出形式如图2.6.1。

函数形式为:

boolisprime(intm);

#include〃iostream.h〃

intisprime(intm)〃判别m是否为质数

{inti;

for(i=2;m%i!=0;i++);

return(i==m);

)

voidmain()

{intx,count=0;

x=2;

while(l)

{if(isprime(x)&&isprime(x+2))

(count++;

cout«z/Cz<<x«,z,/z<<x+2«/z),z«endl;

if(count>=10)break;

x++;

)

2.编一函数,功能为构造正整数x的逆序数。再编一主函数,输出10个大于10000的最小的

回文数。回文数是指顺读和倒读都相同的数,如5、151、3553等。

函数形式为:intreverse(intx);

ttinclude"iostream.h〃

#includc"stdlib.h〃

#include〃time.h〃

intf(inta)

{intb,c=0;

while(a!=0)

{b=a%10;

c=c*10+b;

a/=10;

returnc;

voidmain()

intx,i,k=0,t;booltag=true;

srand(time(NULL));

for(x=10000;k<10;x++)

if(f(x)=x)

{cout<<x«endl;k++;if(k=10)break;}

3.编一函数,功能为判断一字符串是否为回文,如果是回文则返回1,否则返回0。回文是

指顺读和倒读都一样的字符串,如“deed”和“level”是回文。在主函数中对输入的字符

串加以调用。

函数形式为:inthuiwen(chars口);

ttinclude<iostream.h>

ttinclude<string.h>

#include<stdio.h>

inthuiwen(chars[])

inti,n=0;

charch,si[80];

strcpy(si,s);〃原来的字符串保留在si中

while(s[n])n++;〃求字符串长度

for(i=0;i<n/2;i++)〃构造逆序的字符串

{ch=s[i];s[i]=s[n-i-l];s[n-i-l]=ch;}

if(strcmp(sl,s)=0)

return1;

else

return0;

voidmain()

{chars[80];inti,count=0;

cout<<〃输入5个字符串:〃Gendl;

for(i=0;i<5;i++)

{gets(s);

if(huiwen(s))count++;

cout<<“回文个数:"<<count«endl;

4.函数的功能是将学生成绩从高分到低分排序,并统计优秀与不及格的人数。用下面两种

方法实现:

(1)函数形式为:intfun(ints[],intn,int*x);

要求优秀人数通过return返回,不及格人数通过指针参数返回结果。

(2)函数形式为:voidfun(ints[],intn,int&x,int&y);

要求优秀与不及格的人数通过弓I用参数返回结果。

分别编二个程序,学生数从键盘输入。

方法一:

#include<iostream.h>

#defineN10

intfun(inta[],intn,int*x)

{inti,j,k;

*x=0;

for(i=0;i<n-l;i++)

{k=i;

for(j=i+l;j<n;j++)

if(a[j]>a[k])

k二j;

if(k!=i)

{intt=a[k];a[k]=a[i];a[i]=t;}

)

for(i=0;i<n;i++)

if(a[i]>=60)

*x=*x+l;

return(n-*x);

}

voidmain()

{inta[N],i,n,pass,npass;

cin»n;

for(i=0;i<n;i++)

cin»a[i];

npass=fun(a,n,&pass);

cout<<,,pass=,z«pass«//,npass=^«npass<<endl;

cout<X〃成绩由高到低依次为:\n〃;

for(i=0;i<n;i++)

cout«a[i]«endl;

方法2:

#include<iostream.h>

#defineN10

voidfun(inta[],intn,int&x,int&y)

{inti,j,k;

x=0;

for(i=0;i<n-l;i++)

{k=i;

for(j=i+l;j<n;j++)

if(a[j]>a[kj)

k=j;

if(k!=i)

{intt=a[k];a[k]=a[i];a[i]=t;}

}

for(i=0;i<n;i++)

if(a[i]>=60)

x=x+l;

y=n-x;

I

voidmain()

{inta[N],i,n,pass,npass;

cin»n;

for(i=0;i<n;i++)

cin»a[i];

fun(a,n,pass,npass);

cout<<z,pass=zz«pass«z,,npass=z,<<npass<<endl;

cout*〃成绩由高到低依次为:\n〃;

for(i=0;i<n;i++)

cout«a[i]«endl;

5.编•函数,功能为统计字符串中各个字母(不区分大、小写)出现的频率,同时找出频

率出现最高的字母及次数。。函数形式为:

voidfreq(chars[],intp[],char&chmax,int&max)

#include"iostream.h〃

#include〃stdio.h〃

#include"string.h〃

voidfreq(chars[],intp[],charftchmax,int&max)

{for(inti=0;i<26;i++)

p[i>0;

strlwr(s);

i=0;

while(s[i]!=,\0J)

{if(s[i]>=,a&&s[i]<=?z)

p[s[i]->a]++;

i++;

max二p[0];intk=0;

for(i=l;i<26;i++)

if(p[i]>max)

{max=p[i];k=i;}

chmax=k+97;

voidmain()

{intp[26],i,max;chars[80],chmax;

gets(s);

freq(s,p,chmax,max);

for(i=0;i<26;i++)

if(p[ij)cout«char(i+97)<<〃----,z«p[i]«endl;

cout«chmax<<?z----,z<<max<<endl;

)

6.编写函数max,其功能是将字符串s中最大字符的地址返回,再编写一个主函数,调用该

函数,将字符串s中从最大字符开始的子串中的小写字母转换成大写字母,然后输出新字符

串s。例如,假设s的内容为"qwertyou",则从最大字符'y'开始的子串为“you”,处理

后的s为“qwertYOU”。

函数形式为:char*max(chars[]);

#include,ziostream,h

ttinclude"string.h〃

#include〃stdio.h〃

char*max(chars口)

{char*p=s;

inti=l,imax=0;

while(s[i]!='\0')

{if(s[i]>s[imax])imax=i;

i++;

while(s[imax]!='\0')//等价于strupr(&s[imax]);

{s[imax]-=32;imax++;}

returnp;

voidmain()

{chars[100];

gets(s);

cout<<max(s)<<endl;

}

7.编一函数,求级数的部分和,当最后一项的值小于eps时结束。设eps的默认值为10-6。

函数形式为:

doublefun(doublex,doubleeps=le-6);

^include<iostream.h>

#include<math.h>

doublefun(doublex,doubleeps=le-6)

{intn=l;

doublet=l,s=0;

while(fabs(x/t)>le-6)

s=s+x/t;

n=n+2;

t=-t*n*(n-l);

returns;

}

voidmain()

{doublex;

cin>>x;

cout<<fun(x)<<endl;

)

8.编写两个同名的函数,分别求出整型数的两点间距离和浮点型数的两点间距离,调试成

功后,再将其改为用函数模板实现。

函数形式为:

doubledist(intxl,intyl,intx2,inty2);

doubledist(doublexl,doubleyl,doublex2,doubley2);

#include<iostream.h>

#include<math.h>

doubledist(intxl,intyl,intx2,inty2)

return(sqrt((xl-x2)*(xl-x2)+(yl-y2)*(yl-y2)));

}

doubledist(doublexl,doubleyl,doublex2,doubley2)

return(sqrt((xl-x2)*(xl-x2)+(yl-y2)*(yl-y2)));

voidmain()

{intxl,x2,yl,y2;

doublexll,xl2,yll,yl2;

cin>>xl»yl»x2»y2;

cin>>xlI»yll»xl2>>yl2;

cout«,,distl=,,«dist(xl,yl,x2,y2)«endl;

cout«/zdist2="z«dist(xll,yll,xl2,yl2)«endl;

用函数模板来实现:

#include<iostream.h>

#include<math.h>

template<classT>

doubledist(Txl,Tyl,Tx2,Ty2)

return(sqrt((xl~x2)*(xl-x2)+(yl-y2)*(yl-y2)));

voidmain()

{intxl,x2,yl,y2;

doublexll,xl2,yll,yl2;

cin>>xl»yl»x2»y2;

cin>>xll»ylI»xl2>>yl2;

cout«/zdistl=,,«dist(xl,yl,x2,y2)<<endl;

cout«,zdist2=,z«dist(xll,yll,xl2,yl2)<<endl;

实验7:

1、

#include"iostream.h〃

ftdefineN5

structstudent

char*num;

intscore;

studentmax(students口,intn)

studentt=s[0];

for(inti=l;i<n;i++)

if(s[i].score>t.score)

t=s[i];

returnt;

i

voidmain()

students[N],maxs;

inti;

for(i=0;i<N;i++)

s[iLnum=newchar[10];〃假设学号不超过9位

cin>>s[i].num>>s[i].score;

maxs=max(s,N);

cout«maxs.num«,'«maxs.score«endl;

i

2、

#include"iostream.h〃

#include"string.h〃

#defineN5

structbook

charname[30];

doubleprice;

};

voidsort(bookb[],intn)

inti,j;

bookt;

for(i=0;i<n-l;i++)

for(j=0;j<n-l-i;j++)

if(strcmp(b[j].name,b[j+l].name)>0)

(

t=b[j];

b[j]=b[j+l];

b[j+l]=t;

}

voidmain()

bookb[N];

inti;

for(i=0;i<N;i++)

cin>>b[i].name>>b[i].price;

sort(b,N);

for(i=0;i<N;i++)

cout<<b[i].name«,><<b[i].price«endl;

ttincludez,iostream.h,z

voidmain()

structdate

intyear;

intmonth;

intday;

}d;

intdpm[12]={31,28,31,30,31,30,31,31,30,31,30,31),i,s=0;

cin>>d.year»d.month>>d.day;

if(d.year%400=0||d.year%4==0&&d.year%100!=0)

dpm[l]=29;

for(i=0;i<d.month-1;i++)

s=s+dpm[i];

s=s+d.day;

cout<<z,s=,z<<s«endl;

4、

^defineN5

#include"iostream.h〃

structnode

charnum[6];〃职工工号

charname[20];〃职工姓名

doublewage;〃职工工资

node*next;

);

node*deln(node*head,intn)

node*p=head,*q;

inti=l;

if(n==l)

head=head->next;

else

while(i<n&&p->next!=NULL)

q二p;

p=p->next;

i++;

}

q->next=p->next;

deletep;

returnhead;

voidprint(node*head)

node*p=head;

while(p!=NULL)

cout«p->name<<,'<<p->num<〈',<<p->wage«endl;

p=p->next;

}

voidmain()

node*head=NULL,*tail=NULL,*newnode;

inti,n;

for(i=0;i<N;i++)

newnode=newnode;

cin>>newnode->name»newnode->num>>newnode->wage;

if(head=NULL)

head=newnode;

else

tail->next=newnode;

tail=newnode;

tail->next=NULL;

print(head);

cin»n;〃输入待删除结点的序号

head=deln(head,n);

print(head);

#defineN5

#include,ziostream,h"

ttinclude"string.h〃

structnode

charnum[6];〃职工工号

charname[20];〃职工姓名

doublewage;〃职工工资

node*next;

};

voidmodify(node*head,charnum[],doublew)

node*p=head;

while(p!=NULL&&strcmp(p->num,num)!=0)

p=p->next;

if(p==NULL)

cout<<num<</znotexist.\nz,;

else

p->wage=w;

voidprint(node*head)

node*p=head;

while(p!=NULL)

cout«p->name<<,’<<p->num<〈''«p->wage«endl;

p=p->next;

)

voidmain()

node*head二NULL,*tail=NULL,*newnode;

inti;

charnum[6];

doublew;

for(i=0;i<N;i++)

newnode=newnode;

cin>>newnode->name»newnode->num>>newnode->wage;

if(head=NULL)

head=newnode;

else

tail->next=newnode;

tail=newnode;

tail->ncxt=NULL;

print(head);

cin»num»w;〃输入待修改信息的工号、新工资

modify(head,num,w);

print(head);

}

6、

#include

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论