南通大学C++课程设计附答案Word文档下载推荐.docx

上传人:b****5 文档编号:20650170 上传时间:2023-01-24 格式:DOCX 页数:16 大小:17.80KB
下载 相关 举报
南通大学C++课程设计附答案Word文档下载推荐.docx_第1页
第1页 / 共16页
南通大学C++课程设计附答案Word文档下载推荐.docx_第2页
第2页 / 共16页
南通大学C++课程设计附答案Word文档下载推荐.docx_第3页
第3页 / 共16页
南通大学C++课程设计附答案Word文档下载推荐.docx_第4页
第4页 / 共16页
南通大学C++课程设计附答案Word文档下载推荐.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

南通大学C++课程设计附答案Word文档下载推荐.docx

《南通大学C++课程设计附答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《南通大学C++课程设计附答案Word文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。

南通大学C++课程设计附答案Word文档下载推荐.docx

\n"

;

cin>

>

a;

while(a<

1000)

{cout<

你输入的数据不对,请重新输入:

f4(a);

2、输入一个三位整数,输出其各位数字组成的最大数。

{intb[3];

3;

请输入一个三位数:

99)

总结:

本题主要是将各位数字放入数组中,再对它进行排序。

编写函数drop用于判断自然数n是否是降序数,若是,则返回1,否则返回0,

intdrop(intn)

{intn1=n%10,n2;

while(n>

=10)

{n/=10;

n2=n%10;

if(n2>

=n1)

n1=n2;

else

return0;

return1;

voidmain()

{intn;

cout<

请输入一个自然数:

cin>

n;

if(drop(n))

n<

是降序数!

不是降序数:

本题主要思路主要是先求出各个位上的数字,再依次比较大小。

3、设计一个程序,求出5~100间的所有素数,要求每行输出5个素数,判断一个整数是否为素数要求用一个函数来实现。

math.h>

intlove(inta)

{for(inti=2;

if(a%i==0)return0;

{inta=0;

for(intb=5;

b<

100;

b++)

{if(love(b))

{

if(a%5==0)

'

\n'

\t'

a++;

本题的主要思路:

本题主要是考察判断一个数是否为素数的主要算法。

要搞清楚课本上的素数的算法。

4、下列程序求2~50之间所有素数的累加和。

isotream.h>

{inti,j,m,sum;

for(sum=0,i=2;

50;

{j=(int)sqrt(i);

for(m=2;

m<

=j;

m++)

if(i%m==0)break;

if(m>

j)

sun+=i;

sum<

endl;

5,求阶乘

intfun(intn)

{inti,s;

for(i=s=1;

s*=i;

returns;

{intk,n,s;

s=0;

for(k=0;

k<

=n;

k++)

s+=fun(n);

s<

6.用牛顿的迭代法求一元方程的在x=1,5附近你的根,要求精度为10》-8。

intlove()

{floata=1.5;

floatb=3;

floaty;

do

{y=(a+b)/2;

if((2*pow(y,3)-4*pow(y,2)+3*b-6)<

0)

a=y;

else

b=y

}while(fabs(a-b)<

pow(10,-8));

returny;

{cout<

方程的根为:

love();

思路:

本题主要是运用迭代法进行阶乘的运算。

也需要关注一下其他方法求阶乘

7、编写程序,求过函数调用,求正整数m,n的最大公约数和最小公倍数。

intlove(inta,intb)

{intt;

if(a<

b)

{t=a;

a=b;

b=t;

if(a%b==0)

returnb;

love(b,a/b);

{inta,b,c;

请输入一个数:

b;

c=love(a,b);

两个数的最大公约数是:

c;

两个数的最小公倍数:

(a*b)/c;

思路:

本题主要运用的是牛顿的迭代法。

8、.编写程序,通过函数调用,判断任一整数是否是回文数。

boollove(char*p);

{char*i;

请输入数字:

i;

love(i);

boollove(char*p)

{char*u;

u=p;

while(u)

{u++;

u--;

while(u==p)

{if(*u!

=*p)

return0;

p++;

本题主要抓住用指针数组来进行回文数的判定。

要注意指针数组和数组指针的区别。

voiddelsame(chara[],n)

{foe(inti=0;

m-1;

if(a[i]==a[i+1])

{for(intj=i+1;

j<

m-1l;

j++)a[j]=a[j+1];

m--;

i--;

{char*p;

2011年秋

改错题:

string.h>

intprimes[25];

intisPrimes(intn)

sqrt(n);

if(n%i==0)return0;

return1;

intfun(inti,int&

j,int&

k)

{intsum=0;

j=k=0;

while(k<

i)

{sum+=primes[k];

if(sum>

primes[i])

{j++;

sum=0;

if(sum<

k++;

{inti,j,low,high,count=0;

for(i=2;

if(!

isPrimes(i))

primes[count++]=i;

小于100的素数中满足条件的素数为:

for(i=0;

count;

if(fun(i,low,high))

primes[i]<

="

for(j=low;

high;

j++)

primes[j]<

+"

primes[high];

试着定义一个类ID,实现根据某人的身份证号码判断其所在年份的虚岁年龄。

classID

{charid[19];

intage;

public:

IDchar(char*p)

{strcpy(id,p);

age=0;

intsubstr(char*p0,charn0,intn)

{ints=0;

char*p=p0+n0;

for(inti=0;

{s=s*10+(*p-'

0'

);

p++;

voidfun(inty1)

{inty;

y=subsr(id,6,4);

指定年份:

y1<

age=y1-y+1;

voidprint()

身份证:

id<

虚岁年龄:

age<

};

charstr[20];

请输入指定的年份和身份证号码:

y>

str;

IDtest(str);

test.fun(y);

test.print();

voidprocess(char*str,int&

maxlen,char*subs)

{char*ptr=str,c;

intlen;

maxlen=0;

while(*ptr)

{len=1;

while(*ptr==*(ptr+1))

{len++;

ptr++;

if(len>

maxlen)

{maxlen=len;

c=*ptr;

ptr++;

for(inti=0;

maxlen;

*(subs+i)=c;

*subs='

{char*text,subt[100];

intlen;

text=newchar[100];

请输入字符:

cin.getline(text,100);

process(text,len.subt);

该字符串的最长平台的长度为:

len<

该字符串的最长平台:

subt<

delete[]text;

编程:

定义一个类num,实现求大于整数m的最小的k个自反数,若将某个整数各位数字反序排列后得到的整数与原数相等,则称这个整数是自反数

classNUM

{intn,m;

NUM(intx=0)

{n=x;

m=0;

voiddecrease()

{intt=n,count=0;

inta[15];

while(t)

{a[count++]=t%10;

t=t/10;

count-1;

for(intj=i+1;

if(a[i]<

a[j])

{intt=a[i];

a[i]=a[j];

a[j]=t;

}

for(i=0;

m=m*10+a[i];

该数的降序数位:

{intx;

输入一个整数:

x;

NUMn1(x);

n1.decrease();

n1.print();

intcountStr(char*str,char*substr)

{intn=0;

char*p,*r;

while(*str)

{p=str;

r=substr;

while(*r)

if(*r=='

.'

{r++;

break;

if(*p++='

n++;

str++;

returnn;

{charstr[80],subs[5];

intn;

输入主串:

cin.getline(str,80);

输入子串:

subs;

n=counStr(str,subs);

子串在主串中出现的次数为:

试着定义一个类,Num,其功能是求出1000以内的所有满足下列条件的整数:

1,该整数是一个素数,2,其各位数字之和与它的平方数的各位数字之和相等。

{int*p,m,k;

NUM(intt1,intt2)

{m=t1;

k=t2;

p=newint[k];

intisinv(intn)

{ints0=n,s1=0;

while(s0)

{s1=s1*10+s0%10;

s0/=10;

if(s1==n)

return1;

voidfun()

{for(inti=0;

k;

*(p+i)<

~NUM()

{delete[]p;

{intm,k;

请输入m和k:

m>

大于"

个自反数为:

NUMtest(m,k);

test.fun();

test,print();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 金融投资

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1