花千骨电视全集:C语言刚学,请各位帮忙,题目如下,谢谢

来源:百度文库 编辑:高考问答 时间:2024/04/29 08:52:53
一 请编写一个函数fun,它的功能是:计算并输出给定整数n的所有因子(不包括1与自身)之和,主函数完成n的输入和因子和的输出。
二 数组a中存放10个四位十进制整数,统计千位和十位之和与百位和个位之和相等的数据个数,并将满足条件的数据存入数组b中。

第一题fun函数。
int fun(int n)
int i=2,sum=0;
while(n>1)
{
while(n%1==0)
{sum+=i;
n=n/i;
i++;
}
}
return sum;
}
第二题主函数如下
int a[10],b[10],temp[10],i,n,k=0;
for(i=0;i<=9;i++)
cin>>a[i];//输入数据
for(i=0;i<=9;i++)
temp[i]=a[i]/1000+(a[i]%1000)/100+(a[i]%100)/10+a[i]%10;//将各位数和存入数组temp
for(i=0;i<=4;i++)
for(n=1;n<=9-i;n++)
if(a[i]==a[i+n]){ b[k]=a[i];k++;}//比较数组a中各项,若相等则存入数组b,因为任意两个只需比较一次,所以每次只需要与第i项后的各项比较。
for(i=0;i<k;i++)
cout<<" "<<b[i];//显示数组b,完成

一 请编写一个函数fun,它的功能是:计算并输出给定整数n的所有因子(不包括1与自身)之和,主函数完成n的输入和因子和的输出。
解答:
int fun(int);
void main()
{
int a,sum;
printf("please input a num:");
scanf("%d",&a);
sum=fun(a);
printf("\n%d has %d\n",a,sum);
}
int fun(int a)
{
int i,sum=0;
for(i=2;i<a;i++)
{
if(a%i==0)
{sum+=1;printf("%d\t",i);}
}
return (sum);
}
二 数组a中存放10个四位十进制整数,统计千位和十位之和与百位和个位之和相等的数据个数,并将满足条件的数据存入数组b中。
void main()
{
int a[10]={1325,2546,2144,3878,8657,8675,9788,8879,8888,9999};
int b[10];
int i,j=0,sum=0;
int f,c,d,e;
for(i=0;i<10;i++)
{
f=a[i]/1000,c=(a[i]%1000)/100,d=((a[i]%1000)%100)/10,e=((a[i]%1000)%100)%10;
if(f+d==c+e)
{printf("a[%d]:%d\t",i,a[i]);
printf("\n%d %d %d %d\n",f,c,d,e);
sum++;
b[j]=a[i];
printf("\nb[%d]:%d\n",j,b[j]);
j++;

}

}
printf("\n%d",sum);

}

编程爱好学习群:2326077