C语言作业答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

P15 三.2.3.4 、P55 5

P36 三.1.5.7

P74 三

P83 三.3.4

第三章作业:

P44 2.3.4

2、有一个已排好序的数组,今有一个数,要求按原来排序的规律将它插入数组(从小到大排列)中。

#define N 10

main()

{int i,j,n;

int a[N]={1,3,5,7,9,11,13,15,17};

scanf("%d",&n);

i=0;

while(n>a[i]&&i

for(j=N-1;j>i;j--)

a[j]=a[j-1];

a[j]=n;

for(i=0;i

printf("%3d",a[i]);

printf("\n");

}

3、将数组中的值按逆序重新存放并输出。

main( )

{ int i,a[10]; /* 定义循环变量i和一维数组a */

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

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

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

printf("%d ",a[i]); /* 按照逆序输出*/

printf("\n");

}

4、定义一个一维整形数组a【20】,由键盘随机输入20个2位数,统计其中60~99各值段元素的个数(10个数为一段)。

main()

{

int a[20],i,n1,n2,n3,n4;

n1=n2=n3=n4=0;

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

{a[i]=rand()%100 ; printf("a[%d]=%d\n",i,a[i]);}

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

if(a[i]>=60&&a[i]<69) n1++;

else if(a[i]>=70&&a[i]<79)n2++;

else if(a[i]>=80&&a[i]<89)n3++;

else if(a[i]>=90&&a[i]<99)n4++;

printf("\n 60~69=%d\n 70~79=%d\n 80~89=%d\n 90~99=%d",n1,n2,n3,n4); }

第七章作业:

P103三.2.4.6.7.9、

2、统计100以内的所有素数。要求每行输出5个素数。

void main()

{ int i,j;

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

{ for (j=2;j<=sqrt(i);j++)

if (i%j==0) break;

if (j>sqrt(i)) printf("%5d", i); /* 是素数*/

}

}

4、编程输出1~100之间所有完数。

#include "math.h"

main()

{ int sum, i, j;

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

{ sum=0;

for(j=2;j<= sqrt(i);j++)

if(i%j == 0) sum=sum+j+i/j;

if(sum==i-1) printf("%d ",i); }

}

6、编写程序实现:输入两个整数,输出其最大公约数和最小公倍数。void main()

{int a,b,n1,n2,temp;

printf("input two datas: ");

scanf("%d%d",&a,&b);

if(a

for(n1=b;n1>1;n1--)

if(a%n1==0&&b%n1==0) break; /*求最大公约数*/

n2= a*b/n1; /*求最小公倍数*/

printf("The GCD is: %d\n ",n1);

printf("The LCM is: %d\n ",n2);

}

7 输出1~200以内能被7整除但是不能被3整除的数之和。

main()

{ int n,sum=0;

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

{

if ((n%7==0)&&(n%3!=0))

{ printf("%d ",n); sum=sum+n; }

}

printf("\n sum=%d ",sum);

}

9、计算1-1/2+1/3-1/4+….+1/99-1/100,直到最后一项的绝对值小于10-4为止。

#include "stdio.h"

main()

{

int i=1,s;

float sum=0;

while (1.0/i>1e-4)

{if(i%2==0) s=-1;

else s=1;

sum+=s*(1.0/i);

i++;}

printf("sum=%.4f",sum);

}

第八章作业P121 三.3.4.5

3 找出一个二维数组中的鞍点,即该位置上的元素在该行中最大,同时在该列中最小。也可能不存在鞍点,如果有,打印出其位置和值。

main()

{

int a[3][4],x,y,i,j,k;

int max,min;

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

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

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

for(i=0;i<3;i++) /*外循环,行*/

{

max=a[i][0];y=0;

for(k=1;k<5;k++)

if(max

{y=k;max=a[i][k];} /*每行找出最大max,和列号y*/

相关文档
最新文档