2012年(106)
分类: C/C++
2012-05-07 18:27:29
实验三 循环程序设计
一.实验目的
1. 掌握各种循环语句的程序设计。
二.实验环境
1. 硬件:PII以上计算机;
2. 软件:Windows、Visual C++ 6.0;
3. 其它:一张软盘或者U盘等可移动的存储设备。
三.实验内容
练习1.求给出的任意两数之间的所有素数,输出结果要求每5个数打印一行。
运行结果示例:
练习2.编写程序,输出具有abcd=(ab+cd)2性质的全部4位数。
运行结果示例:
练习3.编写程序,输出100~1000之间所有满足如下要求的数:其个位数等于百位数,其十位数不等于百位数且是一个奇数,如131、272等。输出结果,并统计共有多少个这样的数。(使用for语句)
运行结果示例:
练习4.编写程序,求出所有小于或等于100的自然数对。自然数对是指两个自然数的和与差都是平方数,如8与17的和8+17=25与其差17-8=9都是平方数,则8和17称自然数对。
运行结果示例:
*练习5.如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则整数A和B称为亲密数。编写程序,求出6000以内的全部亲密数。
分析:计算数A的各因子的算法是用A依次对i(i=1~A/2)进行模运算,若模运算结果等于0,则i为A的一个因子;否则i就不是A的因子。
运行结果示例:
数组补充实验
练习1.编写程序,从键盘上输入10个数存入数组中,然后输出10个数的平均值、最大值和最小值。
要 求:程序中只允许使用1个&&1重循环
运行结果示例:
练习2.从键盘读入10个数分别存储至数组a和数组b中,要求将两个一维数组中对应元素的值相减后显示出来。
运行结果示例:
练习1
#include
#include
void main()
{
int m,k,i,n,t=0;
printf("Input the range:");
scanf("%d--%d",&m,&n);
for(m=m;m<=n;m=m+1)
{
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)break;
if(i>=k+1)
{printf("%5d",m)
if(t%5==0)
printf("\n");
t=t+1;
}
printf("\n");
}
练习2
#include
void main()
{
int a,x,y;
for(a=1000;a<=9999;a++)
{
x=a%100;
y=a/100;
if(a==(x+y)*(x+y))
cout<
} } 练习3 #include void main() { int a,q,w,x,y,z,n=0; for(a=100;a<=1000;a++) { x=a%10; w=a/10; y=w%10; z=w/10; q=z%2; if(x==z&&y!=z&&q!=0) { cout<
n++; } } cout< } 练习4 #include #include void main() { int i=1,n,x,y; while(i<100) { n=1; while(n<100) { x=i+n; y=fabs(i-n); if(i cout<
n++; } i++; } } 练习5 #include void main() { int i,j,n,a,b; cout<<"the friendly-numberspair:"< for(i=1;i<=6000;i++) { a=0; b=0; for(n=1;n<=i/2;n++) if(i%n==0)a=a+n; for(j=1;j<=a/2;j++) if(a%j==0)b=b+j;