81 date:2021.2.23
要点: 注意输入格式,否则狼来了
详细代码如下:
#include <stdio.h>
#define M 4
/*************found**************/
void fun(int *a)
{
int I,j,k,m;
printf("Enter 4 number: ");
for(I=0;I<M;I++) scanf("%d",&a[I]);
printf("\n\nThe result :\n\n ");
for(I=M;I>0;I--)
{
k=a[M-1];
for(j=M-1;j>0;j--)
/*************found**************/
a[j]=a[j-1]; //每次前面元素向后移动一位
a[0]=k;
for(m=0;m<M;m++) printf("%d ",a[m]);
printf("\n ");
}
}
void main()
{
int a[M];
fun(a); printf("\n\n ");
}
要点:
理解错误,不应该呀??!!因子不是应该有两个吗
详细代码如下:
#include <stdio.h>
int fun(int n)
{
/*
analyse:
求所有因子;
求因子之和;
*/
int s = 0, i;
for(i = 2; i < n; i++)
{
if(n%i == 0)
s += i;
}
return s;
/* error: 理解错误,不应该呀??!!因子不是应该有两个吗
int i,sum = 0;
for(i =2; i < n; i++) //则i是其一个因子
{
if(n%i==0)
{
sum +=(i+(n/i));
}
}
return sum;
*/
}
void main()
{
int n,sum;
FILE *out;
printf("Input n:");
scanf("%d", &n);
sum=fun(n);
printf("sum=%d\n", sum);
/******************************/
out=fopen("out.dat","w");
fprintf(out,"%d\n",fun(123));
fprintf(out,"%d\n",fun(456));
fprintf(out,"%d\n",fun(789));
fprintf(out,"%d\n",fun(147));
fprintf(out,"%d",fun(258));
fclose(out);
/******************************/
}