1.76复古服务端:又是C++的问题

来源:百度文库 编辑:中科新闻网 时间:2024/04/29 13:40:23
题目是这样的:
写一个c++程序求从1到100的和,以及平方和立方和。验证下述每种情况:
1+2+3+…+n=n*(n+1)/2;
1的平方+2的平方+3的平方+…+n的立方=n*(n+1)*(2n+1)/6;
1的立方+2的立方+3的立方+…n的立方=n的平方*(n+1)的平方/4;
希望可以写出可以执行的程序 在这里先谢谢了
这个好象没有初始化X,Y,Z,
这个题的解应该是OP红发杰克的回答比较标准
但由于没初始化X,Y,Z使这个解出现全为假的判断
如果初始化了变量,那这个解就是正确的,大家说给不给OP红发杰克红旗^^ 看杰克兄回答了我这么多疑问嘿嘿 还是给红旗吧

#include <iostream.h>
void main()
{
long x,y,z;
int i;
for(i=1;i<=100;i++)
{
x=x+i;
y=y+i*i;
z=z+i*i*i;
}

if(x==100*(100+1)/2)
cout<< "1+2+3+…+n=n*(n+1)/2 为真"<<endl;
else
cout<<"1+2+3+…+n=n*(n+1)/2 为假"<<endl;
if (y==100*(100+1)*(2*100+1)/6)
cout <<"1的平方+2的平方+3的平方+…+n的立方=n*(n+1)*(2n+1)/6 为真"<<endl;
else
cout <<"1的平方+2的平方+3的平方+…+n的立方=n*(n+1)*(2n+1)/6 为假"<<endl;
if (z==100*100*(100+1)*(100+1)/4)
cout<<"1的立方+2的立方+3的立方+…n的立方=n的平方*(n+1)的平方/4 为真"<<endl;
else
cout<<"1的立方+2的立方+3的立方+…n的立方=n的平方*(n+1)的平方/4 为假"<<endl;
}

C++程序,通过VC++6.0编译,所有三个结果都为假~

如果有什么算法不对的地方请指出,我将及时修改.

#include<stdio.h>
main()
{
long a=0,b=0,c=0,i,n;
printf("请输入n的直:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
a=a+i;
b=b+i*i;
c=c+i*i*i;
}
printf("\n1+2+3+…+n=%d\n",a);
printf("n*(n+1)/2=%d\n",n*(n+1)/2);
printf("1^2+2^2+3^2+…+n^2=%d\n",b);
printf("n*(n+1)*(2n+1)/6=%d\n",n*(n+1)*(2*n+1)/6);
printf("1^3+2^3+3^3+…n^3=%d\n",c);
printf("n^2*(n+1)^2=%d\n",n*n*(n+1)*(n+1)/4);
}

C的

main()
{int n,i;
long int a=0,b=0,c=0;
printf("Input number of n;\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{a+=i;
b+=i*i;
c+=i*i*i;}
if (a==n*(n+1)/2)
printf("1+2+3+…+n=n*(n+1)/2");
else printf("1+2+3+…+n!=n*(n+1)/2");
if (b==n*(n+1)*(2n+1)/6)
printf("1+2+3+…+n=n*(n+1)*(2n+1)/6");
else printf("1+2+3+…+n!=n*(n+1)*(2n+1)/6");
if (c==n*n*(n+1)*(n+1)/4)
printf("1+2+3+…+n=n*n*(n+1)*(n+1)/4");
else printf("1+2+3+…+n!=n*n*(n+1)*(n+1)/4");
}

错了!!错了!!
OP红发杰克,你的“long x,y,z;”应为“long x=0,y=0,z=0;” !!!
否则出现错误:“local variable 'x' used without having been initialized”!!!!
所有三个结果都为真!!!!