《C程序设计第3版》谭浩强 著部分课后习题答案主要是第678章.docx

上传人:b****2 文档编号:2314032 上传时间:2022-10-28 格式:DOCX 页数:19 大小:19.63KB
下载 相关 举报
《C程序设计第3版》谭浩强 著部分课后习题答案主要是第678章.docx_第1页
第1页 / 共19页
《C程序设计第3版》谭浩强 著部分课后习题答案主要是第678章.docx_第2页
第2页 / 共19页
《C程序设计第3版》谭浩强 著部分课后习题答案主要是第678章.docx_第3页
第3页 / 共19页
《C程序设计第3版》谭浩强 著部分课后习题答案主要是第678章.docx_第4页
第4页 / 共19页
《C程序设计第3版》谭浩强 著部分课后习题答案主要是第678章.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

《C程序设计第3版》谭浩强 著部分课后习题答案主要是第678章.docx

《《C程序设计第3版》谭浩强 著部分课后习题答案主要是第678章.docx》由会员分享,可在线阅读,更多相关《《C程序设计第3版》谭浩强 著部分课后习题答案主要是第678章.docx(19页珍藏版)》请在冰豆网上搜索。

《C程序设计第3版》谭浩强 著部分课后习题答案主要是第678章.docx

《C程序设计第3版》谭浩强著部分课后习题答案主要是第678章

《C程序设计(第三版)》部分课后习题答案(谭浩强著)

6.4求

源代码如下:

#include

floatfactorial(intn)//定义阶乘函数

{

inti;

floatproduct=1;

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

{

product=product*i;

}

returnproduct;

}

intmain(void)

{

intj;

floatsum=0;

for(j=1;j<=3;j++)

{

sum+=factorial(j);

}

printf("%g\n",sum);

return0;

}

6.6“水仙花数”

源代码如下:

#include

#include

intfun(intnum)

{

inti=0;

intarray[3];

intsum=0;

while(num)

{

array[i]=num%10;

i++;

num=num/10;

}

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

{

sum+=pow(array[i],3);

}

returnsum;

}

intmain()

{

intj;

printf("输出所有的“水仙花数”:

\n");

for(j=100;j<=999;j++)

{

if(j==fun(j))

{

printf("%-7d",j);

}

}

printf("\n");

return0;

}

6.7完数

源代码如下:

#include

#defineM20

voidmain()

{

inti,j;

intsum;

intarray[M];//用于存放“完数”的数组

intk=0;//数组下标

intn;//“完数”的个数

for(i=1;i<=1000;i++)

{

sum=0;

for(j=1;j<=i/2;j++)

{

if(i%j==0)

{

sum=sum+j;

}

}

if(sum==i)

{

array[k]=i;

k++;

}

}

printf("输出“完数”及其因子:

\n");

n=k;

for(k=0;k

{

printf("%ditsfactorsare",array[k]);

for(j=1;j<=array[k]/2;j++)

{

if(array[k]%j==0)

{

printf("%d,",j);

}

}

printf("\n");

}

}

7.14比较两个字符串

源代码如下:

#include

#include

#defineM20

voidmain()

{

chars1[M],s2[M];//定义两个字符串数组

intlen1,len2;

intmax_len;

inti;

intd;

printf("Inputthestringone:

\n");

gets(s1);

printf("Inputthestringtwo:

\n");

gets(s2);

len1=strlen(s1);

len2=strlen(s2);

max_len=len1>len2?

len1:

len2;//求二者中的较大值

for(i=0;i

{

d=s1[i]-s2[i];

if(d!

=0)

{

break;

}

}

printf("Theresultaftercomparingis%d.\n",d);

}

8.3判断素数的算法

源代码如下:

#include

#include

intPrime(intnumber)

{

inti;

doublek;

k=sqrt(number);

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

{

if(number%i==0)

{

break;

}

}

if(i>k)

{

return1;

}

else

{

return0;

}

}

intmain()

{

intnum;

intresult;

printf("Inputaintegralnumber:

\n");

scanf("%d",&num);

if(num==1)

{

printf("%d既不是素数也不是合数。

\n",num);

return0;

}

result=Prime(num);

if(result)

{

printf("%disaprimenumber.\n",num);

}

else

{

printf("%disnotaprimenumber.\n",num);

}

return0;

}

8.4对3×3的矩阵实现转置

源代码如下:

#include

voidTranspose(intarray_1[][3])

{

inti,j;

intarray_2[3][3];

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

{

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

{

array_2[j][i]=array_1[i][j];

}

}

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

{

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

{

array_1[i][j]=array_2[i][j];

}

}

}

voidmain()

{

inta[3][3];

inti,j;

printf("输入一个3×3的矩阵:

\n");

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

{

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

{

scanf("%d",&a[i][j]);

}

}

Transpose(a);

printf("转置矩阵为:

\n");

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

{

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

{

printf("%-5d",a[i][j]);

if(j==2)

{

printf("\n");

}

}

}

}

8.5对字符串进行反序处理

源代码如下:

#include

#include

#defineN20

voidReverse(char*pointer,intlen)

{

inti;

chartemp;

for(i=0;i

{

temp=pointer[i];

pointer[i]=pointer[len-1-i];

pointer[len-1-i]=temp;

}

}

voidmain()

{

charstr[N];

intlength;//字符串长度

printf("Inputastring:

\n");

gets(str);

length=strlen(str);

Reverse(str,length);

printf("Thenewstring:

\n");

puts(str);

}

8.6对两个字符串进行连接处理

源代码如下:

#include

voidmy_strcat(char*pointer1,char*pointer2)

{

while(*pointer1)

{

pointer1++;

}

while(*pointer2)

{

*pointer1=*pointer2;

pointer1++;

pointer2++;

}

*pointer1=NULL;

}

voidmain()

{

charstr1[30],str2[10];

printf("InputstringA:

\n");

gets(str1);

printf("InputstringB:

\n");

gets(str2);

my_strcat(str1,str2);

printf("ThestringA&B:

\n");

puts(str1);

}

8.8将“1990”转换成“1990”

源代码如下:

#include

voidfun(intnum)

{

intarray1[4],array2[7];

inti=0;

while(num)

{

array1[i]=num%10;

num=num/10;

i++;

}

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

{

array1[i]=array1[i]+'0';//将数字转化为相应的字符

}

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

{

array2[2*i]=array1[i];

}

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

{

array2[2*i+1]='';

}

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

{

printf("%c",array2[i]);//以字符的形式输出

}

}

voidmain()

{

intnumber;

printf("输入一个4位数字:

\n");

scanf("%d",&number);

printf("输出形式为:

\n");

fun(number);

printf("\n");

}

8.11对字符数组进行排序

源代码如下:

#include

voidsort(charpointer[])

{

inti,j;

chartemp;

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

{

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

{

if(pointer[i]>pointer[i+1])

{

temp=pointer[i];

pointer[i]=pointer[i+1];

pointer[i+1]=temp;

}

}

}

}

voidmain()

{

chararray[10]={'a','s','d','f','g','h','j','k','l','x'};

inti;

printf("输入的10个字符为:

\n");

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

{

printf("%-5c",array[i]);

}

printf("\n");

sort(array);

printf("Thesortednumbers:

\n");

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

{

printf("%-5c",array[i]);

}

printf("\n");

}

8.13递归算法求勒让

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

当前位置:首页 > 人文社科 > 法律资料

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

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