x与因子之和相等,就是完数。 五、程序清单
1.编写程序:求1+2+3+…+100和1+2+3+…+100。 #include
int main() {
int i,j,sum;
sum = 0;
for (i=1;i<=100;i++) sum += i;
printf(\
sum =0;
for(i=1;i<=100;i++) {
j=pow(i,2); sum +=j; }
printf(\
return 0; }
2.一个数如果恰好等于它的因子之和,这个数就称为“完数”,编写程序找出2~5000中的所有完数。 #include
main() {
int i,j,sum=0;
for(i=2;i<=5000;i++) //遍历从2到5000的所有数 {
sum = 0;
for (j=1;j<=i/2;j++) //找出给定整数X的所有因子和 {
2
2
3
2
if(i%j == 0) sum +=j; }
if(i == sum) //sum为因子和,如果和i相等,则输出 printf(\ }
return 0; }
3. 改错题
正确的程序为:
#include
int n=1; int find=0; while(!find) {
if(n%5==1 && n%6==5 && n%7==4 && n==10) {
printf(\ find =1; } n++; } }
六、调试和测试结果
1:结果:the sum is:5050 the square sum is:338350 2:结果:6 28 496
实验五 函数和预处理命令
四、设计流程(算法描述)
(请写出上机内容1的算法描述) 利用循环将m乘n次
五、程序清单
1.编写自定义函数long power(int m,int n),计算m的值。利用此函数编程序实现:从键盘输入两个整数m和n,计算出m的值。
#include
long power(int m,int n)//要返回的是long型 {
int i;
long s;//因为是要返回的数,所以这里也定义为long型
s=1;
for(i=1;i<=n;i++) {
s *=m; }
return s; }
int main(void) {
int m,n;
scanf(\
printf(\
return 0; }
2、写出两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个整数由键盘输入。
1. 源程序如下: #include
for(i=n2;i>=1;i--)
if(n1%i==0&&n2%i==0) {break;} return i; }
int zxgbs(int n1,int n2) {int i;
for(i=n1;i<=n1*n2;i++) if(i%n1==0&&i%n2==0)
nn
{break;} return i; }
main()
{int n1,n2,t;
scanf(\ if(n1 {t=n1;n1=n2;n2=t;} printf(\ zxgbs=%d\} 3、改错题 正确程序如下: #include double sum,item,eps; eps=1E-6; sum=1; item=1; for(i=1;item>=eps;i++) {item=fact(i)/multi(2*i+1); sum=sum+item; } printf(\return 0; } double fact(double n) {int i; double res=1; for(i=1;i<=n;i++) res=res*i; return res; } double multi(double n) {int i; double res=1; for(i=3;i<=n;i=i+2) res=res*i; return res; } 六、调试和测试结果 1、输入:2 3 输出:s=8 2、 输入:n1=24 n2=16 输出:zdgys=8 zxgbs=48 2. 3、输出结果为: 实验六 数组 四、设计流程(算法描述) (请写出上机内容1的算法描述) 设置两个变量分别指示头和尾。第一个和最后一个元素值互换,然后头和尾变量向里移动,最终到两变量相遇为止。 五、程序清单 1.编写程序:从键盘输入一串整数保存到数组中,调用函数antitone()将数组反序输出。自定义函数void antitone(int a[],int n)实现将数组中的n个数据按逆序存放。 #include #include void antitone(int a[],int n) { int i,j; int k; i=0; j=n-1; while(i k=a[i]; a[i]=a[j]; a[j]=k; i++; j--; } } void main() { int array[100]; int n,i,m;