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型的變數或是數組,就不存在一定要湊數的問題了。