这是c语言的语法啊 sum += double(b) / a 等同于 sum = sum + double(b) / a
右边的sum表示变量sum的地址 因为在等号的左边所以也称作左值
所以是把 sum的值加上 转换成double类型的b和a的商 储存于 sum变量的地址中
明白了吗?
+=的意思就在字面上表示出来了,
inta+=intb表示inta=inta+intb, C语言的简洁
那句代码就是sum = sum + (double(b) / a)
基础还是要打扎实
for(a=1,a<11,a++)
for(b=a+1,b<12,b++)
for(c=b+1,a<13,a++)
for(d=c+1,d<14,d++)
for(e=d+1,a<15,e++)
{
printf("m="%d,a+b+c+d+e);
}
给你个思路,代码可能有错,很久没写c了~
#include
main()
{
int a,b,c,d,e,m;
for(a=b=c=d=e=1; a<15;a++)
for(;b<15;b++)
for(;c<15;c++)
for(;d<15;d++)
for(;e<15;e++)
{
{
if(a!=b!=c!=d!=!e)
m=a+b+c+d+e;
}
printf("m=%d ",m);
}
getch();
}
应该对吧我没怎么算
利用全排列
#include
void swap(int a[], int x, int y) {
int temp = a[x];
a[x] = a[y];
a[y] = temp;
}
int sum(int array[], int n, int k) {
if (n == k) {
int out[5], i;
for (i = 0; i < 5; i++) {
out[i]=array[i];
}
printf("%d+%d+%d+%d+%d=%d\n",out[0], out[1], out[2], out[3], out[4],out[0] + out[1] + out[2] + out[3] + out[4]);
} else {
int j;
for (j = k; j < n; j++) {
swap(array, k, j);
sum(array, n, k + 1);
swap(array, j, k);
}
}
}
int main(){
int i, j;
for(i=0;i<15-4;i++){
int in[5];
for(j=0;j<5;j++){
in[j]=i+1+j;
}
sum(in, 5, 0);
}
}