您的位置:

奥数竞赛c语言,c语言知识竞赛

本文目录一览:

鸡兔同笼的问题 c语言怎么样编写

鸡兔同笼是中国古代的数学名题之一。

大约在1500年前,《孙子算经》中就记载了这个有趣的问题。书中是这样叙述的:

今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?

这四句话的意思是:

有若干只鸡兔同在一个笼子里,从上面数,有35个头,从下面数,有94只脚。问笼中各有多少只鸡和兔?

已知鸡和兔的总数量为n,总腿数为m。输入n和m,依次输出鸡和兔的数目,如果无解,则输出“No answer”

程序如下:

#include stdio.h int main()

{    int T;    int n;    int m;

scanf("%d",T); 

while(T--)

{

scanf("%d%d",n,m);     

if((m-2*n)=0 (m-2*n)%2==0 (4*n-m)=0 (4*n-m)%2==0)         

printf("%d %d\n",(4*n-m)/2,(m-2*n)/2);         

else

printf("No answer\n"); 

}    return 0;

}

扩展资料:

C语言新手编程注意事项:

1、书写标识符时,忽略了大小写字母的区别。

2、忽略了变量的类型,进行了不合法的运算。

3、将字符常量与字符串常量混淆。

4、忽略了“=”与“==”的区别。

5、忘记加分号。

6、多加分号。

7、输入变量时忘记加地址运算符“”。

8、输入数据的方式与要求不符。

参考资料来源:百度百科-C语言

我对数学很感兴趣,在自学奥数,自我感觉不算太笨,以前自学过半年c语言,而且我并不会参加竞赛,

为什么不参加竞赛,你不参加你怎么知道你的实力怎么发挥出来,输赢不重要好吧

计算机c语言,公鸡每只5元,母鸡每只3元,小鸡一元三只,用100元买一百只,求出公鸡、小鸡、母鸡各多少只

#includestdio.h

int main()

{

int x,y,z; //x公鸡数,y母鸡数,z小鸡数

for(x=1;x=20;x++) //100最多买20公鸡

for(y=1;y=34;y++) //100最多买34母鸡

for(z=1;z=100;z++) //最多只能有100小鸡

if(x+y+z==1005*x+3*y+z/3==100z%3==0)

{

printf("公鸡为:%d\t",x);

printf("母鸡为:%d\t",y);

printf("小鸡为:%d\t\n",z);

}

while(1);

return 0;

}

扩展资料:

鸡兔同笼,是中国古代著名典型趣题之一,记载于《孙子算经》之中。鸡兔同笼问题,是小学奥数的常见题型。

"鸡兔同笼"是一类有名的中国古算题。最早出现于《孙子算经》中。许多小学算术应用题都可以转化成这类问题,或者用解它的典型解法--"假设法"来求解。

求高手帮忙编个小学奥数题 用C语言 越快越好 题目如下

假设最多可能有1000个和尚在山上,用下面的程序可穷举出来

#define TOTAL_MAN    1000

void main(void)

{

int i, j;    //i表示大和尚,j表示小和尚

for(i=1; iTOTAL_MAN; i++)

{

for(j=1; jTOTAL_MAN-i; j++)

{

if ( i + j == (i*(41/7.0) + j*(11/29.0)))

{

break;

}

}

if (j  TOTAL_MAN-i)

{

break;

}

}

if(i  TOTAL_MAN)

{

printf("大和尚%d个,小和尚%d个,共%d个和尚\r\n", i, j, i+j);

}

else

{

printf("无解,调整总和尚人数\r\n");

}

getchar();

}

奥数题 C语言

编译运行正确,结果是18,9和27,6和54,3

#include stdio.h

#include malloc.h

typedef struct list{

int x[3];

struct list * next;

}result;

int flag[10];

int a[10];

result* head=NULL;

void print()//打印满足条件的结果

{

if((a[1]*10+a[2])*a[3]==(a[4]*10+a[5])*a[6](a[1]*10+a[2])*a[3]==(a[7]*10+a[8])*a[9])

{

if(head==NULL)

{

result*p=(result*)malloc(sizeof(result));

p-x[0]=a[1]*100+a[2]*10+a[3];

p-x[1]=a[4]*100+a[5]*10+a[6];

p-x[2]=a[7]*100+a[8]*10+a[9];

p-next=head;

head=p;

printf("结果是:%d,%d\t%d,%d\t%d,%d\n",a[1]*10+a[2],a[3],a[4]*10+a[5],a[6],a[7]*10+a[8],a[9]);

}

else{//判断结果是否重复

result*q=head;

while(q!=NULL)

{

if((q-x[0]!=a[1]*100+a[2]*10+a[3])(q-x[1]!=a[1]*100+a[2]*10+a[3])(q-x[2]!=a[1]*100+a[2]*10+a[3]))

q=q-next;

else break;

}

if(q==NULL)

{

result* p=(result*)malloc(sizeof(result));

p-x[0]=a[1]*100+a[2]*10+a[3];

p-x[1]=a[4]*100+a[5]*10+a[6];

p-x[2]=a[7]*100+a[8]*10+a[9];

p-next=head;

head=p;

printf("结果是:%d,%d\t%d,%d\t%d,%d\n",a[1]*10+a[2],a[3],a[4]*10+a[5],a[6],a[7]*10+a[8],a[9]);

}

}

}

}

void fun(int i)//递归计算1~9的全排列

{

int k;

if (i==10)

{

print();

}

else

{

for(k=1;k=9;k++)

{

if(!flag[k])

{

a[i]=k;

flag[k]=1;

fun(i+1);

flag[k]=0;

}

}//end of for

}

}

int main(){

int k;

for(k=1;k=9;k++)

{

flag[k]=0;

}

fun(1);

getchar();

}