发布时间 : 星期一 文章C语言程序设计实验与习题答案更新完毕开始阅读f4627ffd7f21af45b307e87101f69e314332faeb
...
int i,j,k; for(i=1;i<=6;i++) {
for(k=1;k<=20-(2*i-1)/2;k++) printf(\for(j=1;j<=2*i-1;j++) printf(\printf(\} }
(2) 编写一个程序输出所有
5 位数字的回文。
方法一:
#include
long x,a,t; //x: 原5 位整数,a:用来暂存 x,t: 把 a 反序后的数 int i,num=0; //i: 表示原 5 位数的某一位 ,num: 回文数的个数 for(x=10000;x<=99999;x++) //每次取出 1 个 5 位整数 {
a=x; //把取出的 5 位整数保存到 a t=0; //t 用来存放反序后的数 while(a>0) { i=a; //取出当前数的最后一位到 i
t=t*10+i; //把取出的 i 组装到 t a=a/10; }
...
...
if(x==t)
{printf(\if(num==0) //原来的 5 位整数等于反序后的数 t num++;} printf(\//每行输出 10 个数
} } 方法二:
/*求 5 位整数中所有回文 */
#include
long int n,m,t=0;
for(n=10000;n<=99999;n++) {
if(hw(n)==1)
{ printf(\t++;
if(t%5==0) printf(\/*每行输出 5 个数*/
} } }
int hw(long int a) /*hw 函数测试 a 是否是回文 */
{
long int m,r=0; m=a; while(m) {
r=r*10+m; m/=10; }
if(a==r) return 1; /*是回文返回 1 */ else
return 0; /*是回文返回 0 */ }
(3) 编程计算 e=1+1/1!+1/2!+1/3!+ , (即最后一项 1/n!<1e-6 就停止循环)。
...
!。精度为+1/n 1e-6
...
提示:注意 1/n!=1/(n-1)!*1/n ;利用循环加上每一次的分项。
#include
{ long i;
double e,t;
e=1.0
;
t=1.0;
for(i=1;
t>1e-6 ;i++)
{t/=(double)i;
e+=t; }
printf(\
}
2. ⑴
①a[10]=x; ②break; ③a[k]=x;
附:算法简析 main() {
int x,i,j,k;/* 感觉似乎 j 定义了没什么作用 int a[11]={8,18,28,38,48,58,68,78,88,98};
printf(\请输入需要插入的一个整数: \
scanf(\
a[10]=x;/* 把 x 放到数据串最末位置 */
for(i=0;i<10;i++)
...
*/
...
if(x 时退出 */ 寻找 x 的插入点,当发现插入点 for(i=10;i>k;i--)/* 将插入点以及其后的每个数据后移一个 单位(给 x 腾位) */ /* 实例演示——腾位 8 18 28 38 48 58 68 78 88 98 (x) 8 18 28 38 38 48 58 68 78 88 98 ↑ 插入点 */ a[i]=a[i-1]; a[k]=x;/* 将 x 放到插入点位置 */ for (i=0;i<11;i++) printf(\printf(\ } ⑵①i%7==0||i==0 ②n++ ③i%5==0 3. ⑴a.将 continue;改为 break; b.将 i=k-1; 改为 j=k-1; c.将 j=k+1; 改为 i=k+1; d.将 for(i=0;i<10;i++) 改为 for(i=0;i<9;i++); 附:算法简析 #include void main() {int x, i,j,k; ...