c语言凑数
1. c语言(为啥结果是个这)
你写的第一个,为神马要用math.h呢?还有你用sum(9)说明为被调用函数传了个9,在被调用函数中那个a接受了9,然后你把a用哪儿去了哇?然后你又把while循环写在了for循环里面!你没发现你的i最大只能到314,那while又怎么让它到315啊?我都看不明白了o(╯□╰)o
然后第二个,你在主函数里面输出的是sum(9),而不是return的s值额,你应该把传过来的s赋给一个值再把这个值输出
2. C语言 有关loadimage()介绍的 书籍。最好是VC中的
3. 一道巨难的数学题,回答出来智商200以上有一个三位数ABC,还有5个三位数ACB...
答案358
acb=a×100+c×10+b
bac=b×100+a×10+c
bca=b×100+c×10+a
cab=c×100+a×10+b
cba=c×100+b×10+a
=>
acb+bac+bca+cab+cba
=a×100+c×10+b+b×100+a×10+c+b×100+c×10+a+c×100+a×10+b+c×100+b×10+a
=(a+2b+2c)×100+(2a+b+2c)×10+(2a+2b+c)
=3194
设和进二,则
2a+2b+c=24
2a+b+2c=27
a+2b+2c=29
整理得
c-b=3
b-a=2即b=a+2
c-a=5即c=a+5
将b、c代入设和进二处2a+2b+c
=24可得
解得:a=3,b=5,c=8
即abc=358另外还有一种简单的方法,用C语言编程序可以穷举出这个数:for(int
a=0;a
4. 一道巨难的数学题,跪求答案~~回答出来智商200以上
答案358
acb=a×100+c×10+b
bac=b×100+a×10+c
bca=b×100+c×10+a
cab=c×100+a×10+b
cba=c×100+b×10+a
=>
acb+bac+bca+cab+cba
=a×100+c×10+b+b×100+a×10+c+b×100+c×10+a+c×100+a×10+b+c×100+b×10+a
=(a+2b+2c)×100+(2a+b+2c)×10+(2a+2b+c)
=3194
设和进二,则
2a+2b+c=24
2a+b+2c=27
a+2b+2c=29
整理得
c-b=3
b-a=2即b=a+2
c-a=5即c=a+5
将b、c代入设和进二处2a+2b+c =24可得
解得:
a=3,b=5,c=8
即abc=358
另外还有一种简单的方法,用C语言编程序可以穷举出这个数:
for(int a=0;a<10;a++){
for(int b=0;b<10;b++){
for(int c=0;c<10;c++){
int dd = a*100 + b*10 +c
+ c*100 + a*10+b
+ c*100 +b*10 +a
+ b*100 + a*10 +c
+b*100 + c*10 +a;
if(dd == 3194){
System.out.println("a="+a);
System.out.println("b="+b);
System.out.println("c="+c);
}
}
}
}
5. 用c语言求一个四元二次方程解的个数
提取公因式后 本题其实是一个一元三次方程
根据 三次方程新解法——盛金公式解题法 见http://ke..com/view/1382952.htm#4
编程如下
#include <stdlib.h>
#include <iostream.h>
#include <fstream.h>
#include <cmath>
#include <math.h>
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#define JINGDU double
#define MYSQRT(x) (JINGDU)sqrt((x))
#define ZERO 10e-6
#define MYSIN(x) (JINGDU)sin((x))
#define MYCOS(x) (JINGDU)cos((x))
#define ARCSIN(x) (JINGDU)asin((x))
#define ARCCOS(x) (JINGDU)acos((x))
JINGDU sqr3(JINGDU x)
{
if(x<0) {x=-x;return -(JINGDU)pow(x,1.0/3);}
else return (JINGDU)pow(x,1.0/3);
}
void x3fun(JINGDU a,JINGDU b,JINGDU c,JINGDU d)
{
JINGDU A=b*b-3*a*c,B=b*c-9*a*d,C=c*c-3*b*d,delta=B*B-4*A*C; //A=b^2-3ac;B=bc-9ad;C=c^2-3bd 总判别式:Δ=B^2-4AC。
JINGDU X1,X2,X3;
if(!A&&!B)//当A=B=0时,方程有一个三重实根
{
if(a)X1=X2=X3=-b/(3*a);
if(b)X1=X2=X3=-c/b;
if(c)X1=X2=X3=-d/c; //X1=X2=X3=-b/(3a)=-c/b=-3d/c
printf("%8f%8f%8f\n",X1,X2,X3);
JINGDU x=X1;
printf("%f",a*x*x*x+b*x*x+c*x+d);
return;
}
if(delta<ZERO&&delta>-ZERO)//当Δ=B^2-4AC=0时,方程有三个实根,其中有一个两重根;
{
JINGDU K=B/A;
X1=-b/a+K;
X2=X3=-K/2; //X1=-b/a+K;X2=X3=-K/2
printf("%8f%8f%8f\n",X1,X2,X3);
JINGDU x=X1;
printf("%f",a*x*x*x+b*x*x+c*x+d);
return;
}
if(delta>ZERO)//当Δ=B^2-4AC>0时,方程有一个实根和一对共轭虚根
{
JINGDU Y1=A*b+3*a*(-B+MYSQRT(B*B-4*A*C))/2;
JINGDU Y2=A*b+3*a*(-B-MYSQRT(B*B-4*A*C))/2;//Y1,Y2=Ab+3a(-B±(B^2-4AC)^(1/2))/2
X1=(-b-sqr3(Y1)-sqr3(Y2))/(3*a); //X1=(-b-(Y1)^(1/3)-(Y2)^(1/3))/(3a);
JINGDU real=(-2*b+sqr3(Y1)+sqr3(Y2))/(6*a);//X2,X3=(-2b+(Y1)^(1/3)+(Y2)^(1/3))/(6a)
JINGDU complex=MYSQRT(3)*(sqr3(Y1)-sqr3(Y2))/(6*a);//±3^(1/2)((Y1)^(1/3)-(Y2)^(1/3))i/(6a)
printf("%5f\t",X1);
printf("%f+%fi\t",real,complex);
printf("%f-%fi\t\n",real,complex);
JINGDU x=X1;
printf("%f",a*x*x*x+b*x*x+c*x+d);
return;
}
if(delta<ZERO)//当Δ=B^2-4AC<0时,方程有三个不相等的实根
{
JINGDU T=(2*A*b-3*a*B)/(JINGDU)pow(2*A,3/2);//T= (2Ab-3aB)/(2A^(3/2))
JINGDU xita=ARCCOS(T); //θ=arccosT
X1=(-b-MYSQRT(2*A)*MYCOS(xita/3))/(3*a);//X1=(-b-2A^(1/2)cos(θ/3))/(3a);
X2=(-b+MYSQRT(A)*(MYCOS(xita/3)+MYSQRT(3)*MYSIN(xita/3)))/(3*a);
X3=(-b+MYSQRT(A)*(MYCOS(xita/3)-MYSQRT(3)*MYSIN(xita/3)))/(3*a);
printf("%8f%8f%8f\n",X1,X2,X3);
JINGDU x=X1;
printf("%f",a*x*x*x+b*x*x+c*x+d);
return;
}
JINGDU x=X1;
printf("%f",a*x*x*x+b*x*x+c*x+d);
}
int main(int argc, char* argv[])
{
//myfilesum();
JINGDU a,b,c,d;
cin>>a>>b>>c>>d;
x3fun(a,b,c,d);
return 0;
}
6. C语言编写超级素数
超级素数是指从个位起删除0位、1位、2位……直到只剩最后1位都是素数的十进制正整数。可以自定义一个素数判断函数,对某一正整数n及从个位起每删除1位的新数逐一进行判断,都是素数的则是题解。以下代码先要求输入正整数n,输出2~n之间的所有超级素数:
#include"stdio.h"
intprime(intn){//判断素数,素数返回0,否则返回1
inti;
if(n>2&&!(n&1)||n<2)
return1;
for(i=3;i*i<=n;i+=2)
if(!(n%i))
return1;
return0;
}
intmain(intargc,char*argv[]){
intn,i,t;
printf("Inputn(intn>1)... n=");
if(scanf("%d",&n)!=1||n<2){
printf("Inputerror,exit... ");
return0;
}
for(i=2;i<=n;i++){
for(t=i;t;t/=10)//从低位删除0位,1位...直到只剩1位都是素数的为超级素数
if(prime(t))
break;
if(!t)
printf("%d",i);
}
printf(" ");
return0;
}
运行样例如下:
7. 求至少1000行的C程序
写个俄罗斯方块就差不多够数了。
纯凑数的方法就是多注意换行。。。把程序按功能分块,不过这是种好习惯。
void f()
{
return;
}
if (……)
{
}
else
{
}
8. C语言中,一个指针占用的空间是多大和指针类型有关系吗
指针和其指向的数据类型有关系,你可以用sizeof()来做测试:
printf("the size of char is %d\n",sizeof(int*));
printf("the size of char is %d\n",sizeof(char*));
另外,指向结构体的指针就要看具体情况了,C语言还有所谓的“对齐机制”,就是结构体里的单元,所分配的空间实际上要参照结构体里“体积”最大的那个单元。就是说,比如一个char和一个int,char要向int看齐,一个char和一个double,char要向double看齐。关键就在于凑整数,凑成最大变量大小的倍数。当然,如果结构体里只有char型的变量或是数组,就不存在一定要凑数的问题了。