文档介绍:2-1
/* 本程序中的函数factor用来计算正整数m(m>2)的除自身以外的
所有不同因子的和,该函数返回因子和,并把各因子从小到大依次存放
在数组fac中,其因子个数存入在cp所指的变量中。eg:16的因子为
(1,2,4,8),因子之和为15
*/
#include""
#define N 100
long factor(int m,int fac[],int *cp)
{
int c1,c2,i,k;
long s;
fac[0]=1;
for(c1=s=1,c2=N-1,i=2;;)//位置【1】
{
k=m/i;
if(m%i==0) //位置【2】
{
fac[c1++]=i;
if(i<k) fac[c2--]=k; //位置【3】
s+=i;
}
i++;
if(i>k) break;
}
for(c2++;c2<=N-1;c2++)
{
fac[c1++]=fac[c2]; //位置【4】
s+=fac[c2]; //位置【5】
}
*cp=c1;
return s;//位置【6】
}
//主函数
void main()
{
int i,m,a[N],n=0;
long s;
printf("please enter a number:");
scanf("%d",&m);
s=factor(m,a,&n);
printf("\n %d 的因子有:\n",m);
for(i=0;i<n;i++)
printf("%4d",a[i]);
printf("\n因子之和为:%ld\n",s);
}
2-2
/* maxindex函数是求数组的最大元素,及其下标*/
#include""
#define MAXLINE 1000
int maxindex(int a[],int *index)
{
int i,n;
do
{
printf("please input n\n");
scanf("%d",&n);
}while(n>MAXLINE);//位置【7】
for(i=0;i<n;i++)
{
printf("请输入数据:");
scanf("%d",a+i);
}
*index=0; //位置【8】
for(i=1;i<n;i++)
if(a[i]>a[*index])
*index=i; //位置【9】
return a[*index]; //位置【10】
}
void main()
{
int a[MAXLINE],maxj,max;
max=maxindex(a,&maxj);
printf("\n数组的最大值的角标为%d\n",maxj);
printf("\n数组的最大值为%d\n",max);
}
5-1
/* 函数palindprome的功能是判断字符串s是否为回文,若是则返回0,否则返回-1.
若一个字符串顺读和倒读都一样,称该字符串是回文字符串,例如:level
*/
#include""
#inclu