⑴ c语言。。完美立方。。求大神
您好!很高兴为您解答。
改代码事小,把算法逻辑中的错误找到才是关键。
按LZ的逻辑:
for(a=5;a<=n;a++){
for(d=a-1;d>3;d--){
for(c=d-1;c>2;c--){
for(b=c-1;b>1;b--){
我比较能理解LZ的想法,a非降序的条件下,保证a相同时d非升序排列(相当于b+c升序),再保证d相同时c非升序排列(相当于b升序),因此保证了b升序排列。
但前提是只有a相同时d也相同才能保证c非升序,b升序;如果a相同时d降序,上面的逻辑完全不适用(不知道LZ有没有体会到这层意思……),就比如:
(87,20,54,79)
(87,38,48,79)
此处d都为79,所以只要c非升序,b一定升序。
而下面:
(90,25,38,87)
(90,10,60,80)
一旦d降序排列,就不能保证c非升序排列,同时如果很不幸地c升值得比d降值大得多,b就变成降序排列了,出错。
如果要优先确保b为降序排列,那就应该把b的循环写在前面才能够很好地控制。
程序修改如下:
#include<stdio.h>
int main()
{
int n,a,b,c,d;
scanf("%d",&n);
for(a=5;a<=n;a++){
for(b=4;b<=a-1;b++){
for(c=3;c<b-1;c++){
for(d=2;d<=c-1;d++){
if(a*a*a==b*b*b+c*c*c+d*d*d){
printf("Cube = %d, Triple = (%d,%d,%d)\n",a,b,c,d);
}
}
}
}
}
return 0;
}
望采纳~如您还有不解,欢迎追问~
⑵ C语言中立方怎么表示
可以用连乘来计算,如:
d=i*i*i;
或者用pow()函数,如:
#include <math.h>
double d;
d=pow(i,3);
⑶ c语言求平方与立方
#include <stdio.h>
#include<conio.h>
int vabs(int x)
{
if(x<0)return -x;
return x;
}
int main()
{
int n,m,sc,sq;
int i,CS=1;
while(scanf("%d%d",&n,&m)!=EOF)
{
if(n>m)
{
i=n;
n=m;
m=i;
}
sc=0;
sq=0;
for(i=n;i<=m;i++)
{
if(i%2==1)
{
sc+=i*i*i;
}
else sq+=i*i;
}
printf("Case %d:\n",CS);
CS++;
printf("%d-%d=%d\n",sq,sc,vabs(sq-sc));
}
return 0;
}
⑷ C语言中求变量的平方或立方怎样打出来
楼上的我都同意!
都是正确答案!^_^!
阶乘没有符号表示的!阶乘是用递归调用来实现的!
⑸ 用C语言编写一个求立方的程序
#include <stdio.h>
#include<math.h> //pow()所需的头文件
int main(int argc, char *argv[])
{
int a,b;
scanf("%d%d",&a,&b);
double sum=pow(a,b);//调用计算平方的库函数
printf("%.2f",sum);//.2f保留小数点后两位
return 0;
}
⑹ c语言X的立方
#inclued <stdio.h>
int power(int x,int n) ; //函数声明
void main()
{
int x; //底数x
int n; //次方n
int result;//结果
printf("请分别输入底数,次方:\n");
scanf("d%d%",&x,&n); //从键盘读取底数和次方
result=power(x,n); //调用外部算次方函数
printf("%d的%d次方是:%d",&x,&n,&result);
}
int power(int x,int n)
{
int i;
int pow=1;
for(i=1;i<=n;i++) //用for 循环来求X的N次方
{
power*=x;
}
return power; //结果返回
}
我直接在这上面写的,没有在编译器上调试,看懂了知道思路就可以了
已经是最详细的了
⑺ C语言中求一个数的三次方
注意看一下程序的注释部分,希望能帮到你:
#include<stdio.h>
main()
{
intx,y;
printf("请输入数字:");//这里加上一句友情提示
scanf("%d",&x);//这里的上下两句对调,同时x的前面加上&地址符
y=x*x*x;//这里的上下两句对调
printf("y=%d ",y);
}
上面的程序,求一般的数值,够了,但是数太大,就会溢出了,建议x、y变量改成double 类型
#include<stdio.h>
main()
{
doublex,y;
printf("请输入数字:");//这里加上一句友情提示
scanf("%d",&x);//这里的上下两句对调,同时x的前面加上&地址符
y=x*x*x;//这里的上下两句对调
printf("y=%d ",y);
}
⑻ c语言中,开三次方用什么
c语言中,开三次方用pow函数。即double pow(double number, double power)。
pow函数的主要作用是返回给定数字的乘幂。POWER函数的语法为:double pow(doublenumber, doublepower),其中参数number表示底数;参数power表示指数。
两个参数可以是任意实数,当参数power的值为小数时,表示计算的是开方;当参数number取值小于0且参数power为小数时,POWER函数将返回-1错误值。
(8)c语言立方扩展阅读:
C/C++提供以下几种pow函数的重载形式:
1、double pow(double X,int Y)。
2、float pow(float X,float Y)。
3、float pow(float X,int Y)。
4、long double pow(long double X,long double Y)。
5、long double pow(long double X,int Y)。
使用的时候应合理设置参数类型,避免有多个“pow”实例与参数列表相匹配的情况。
其中较容易发生重载的是使用形如:
int X,Y;
int num=pow(X,Y);
这是一个比较常用的函数,但是编译器会提醒有多个“pow”实例与参数列表相匹配。
可以使用强制类型转换解决这个问题:num=pow((float)X,Y)。
⑼ C语言求立方。。。
可以,但是C语言里面有单独的函数解决这类问题。原型:extern float pow(float x, float y); 用法:#include <math.h> 功能:计算x的y次幂。 说明:x应大于零,返回幂指数的结果。 举例: // pow.c #include <syslib.h> #include <math.h> main() { clrscr(); // clear screen textmode(0x00); // 6 lines per LCD screen printf("4^5=%f",pow(4.,5.)); getchar(); return 0; }
⑽ c语言求立方和
#include<stdio.h>
int main(){
int x,y;
sacnf("%d,%d",&x,&y);
printf("%d^3+%d^3=%d",x,y,(x*x*x+y*y*y));
return 0;
}