C语言程序设计第四版第六节答案_谭浩强.doc
文本预览下载声明
用筛选法求100之内的素数。
解:
#include stdio.h
#include math.h
int main()
{int i,j,n,a[101];
for (i=1;i=100;i++)
a[i]=i;
a[1]=0;
for (i=2;isqrt(100);i++)
for (j=i+1;j=100;j++)
{if(a[i]!=0 a[j]!=0)
if (a[j]%a[i]==0)
a[j]=0;
}
printf(\n);
for (i=2,n=0;i=100;i++)
{ if(a[i]!=0)
{printf(%5d,a[i]);
n++;
}
if(n==10)
{printf(\n);
n=0;
}
}
printf(\n);
return 0;
}
用选择法对10整数排序。
解:
#include stdio.h
int main()
{int i,j,min,temp,a[11];
printf(enter data:\n);
for (i=1;i=10;i++)
{printf(a[%d]=,i);
scanf(%d,a[i]);
}
printf(\n);
printf(The orginal numbers:\n);
for (i=1;i=10;i++)
printf(%5d,a[i]);
printf(\n);
for (i=1;i=9;i++)
{min=i;
for (j=i+1;j=10;j++)
if (a[min]a[j]) min=j;
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
printf(\nThe sorted numbers:\n);
for (i=1;i=10;i++)
printf(%5d,a[i]);
printf(\n);
return 0;
}
求一个3×3的整型矩阵对角线元素之和。
解:
#include stdio.h
int main()
{
int a[3][3],sum=0;
int i,j;
printf(enter data:\n);
for (i=0;i3;i++)
for (j=0;j3;j++)
scanf(%3d,a[i][j]);
for (i=0;i3;i++)
sum=sum+a[i][i];
printf(sum=%6d\n,sum);
return 0;
}
有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中。
解:
#include stdio.h
int main()
{ int a[11]={1,4,6,9,13,16,19,28,40,100};
int temp1,temp2,number,end,i,j;
printf(array a:\n);
for (i=0;i10;i++)
printf(%5d,a[i]);
printf(\n);
printf(insert data:);
scanf(%d,number);
end=a[9];
if (numberend)
a[10]=number;
else
{for (i=0;i10;i++)
{if (a[i]number)
{temp1=a[i];
a[i]=number;
for (j=i+1;j11;j++)
{temp2=a[j];
a[j]=temp1;
temp1=temp2;
}
break;
}
}
}
printf(Now array a:\n);
for (i=0;i11;i++)
printf(%5d,a[i]);
printf(\n);
return 0;
}
将一个数组中的值按逆序重新存放。例如,原来顺序为8、6、5、4、1。要求改为1、4、5、6、8。
解:
#include stdio.h
#define N 5
void main()
{ int a[N],i,temp;
printf(enter arry a:\n);
for(i=0;iN;i++)
scanf(%d,a[i]);
显示全部