实验三 循环程序设计
一.实验目的
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<stdio.h>
#include<math.h>
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<iostream.h>
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<<a<<" ";
}
}
练习3
#include<iostream.h>
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<<a<<" ";
n++;
}
}
cout<<n<<endl;
}
练习4
#include<iostream.h>
#include<math.h>
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<n&&sqrt(x)==(int)sqrt(x)&&sqrt(y)==(int)sqrt(y))
cout<<i<<"与"<<n<<endl;
n++;
}
i++;
}
}
练习5
#include<iostream.h>
void main()
{
int i,j,n,a,b;
cout<<"the friendly-numberspair:"<<endl;
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;
if(i==b&&i<a)
cout<<i<<"与"<<a<<endl;
}
}
数组补充实验
习题1
#include<iostream.h>
void main()
{
int a[10],i,j,sum=0;
float ave,max,min;
cout<<"please input 10numbers:"<<endl;
for(i=0;i<10;i++)
{
cin>>a[i];
sum+=a[i];
max=a[0];
min=a[0];
if(max<a[i])max=a[i];
if(min>a[i])min=a[i];
}
ave=sum/10.0;
cout<<"the maxis:"<<max<<endl<<"the minis:"<<min<<endl<<"the aveis:"<<ave<<endl;
}
习题2
#include<iostream.h>
void main()
{
int a[5],b[5],c[5],i,j,x;
cout<<"输入a数组:";
for(i=0;i<5;i++)cin>>a[i];
cout<<"输入b数组:";
for(j=0;j<5;j++)cin>>b[j];
i=0;
j=0;
for(x=0;x<5;x++)
{
c[x]=a[i]-b[j];
cout<<c[x]<<" ";
i++;j++;
}
cout<<endl;
}