本站提倡有节制游戏,合理安排游戏时间,注意劳逸结合。

【由数字算源码】【支付中转源码】【arcgis addin源码】国际象棋app源码_国际象棋app源码大全

2024-11-14 14:03:15 来源:知识 分类:知识

1.数据结构 八皇后
2.c国际象棋语言运行结果出问题
3.在国际象棋的国际棋盘上(8*8),皇后可以走直线也可以走斜线(对角线).一个皇后能吃去同行和同对角线上
4.C语言综合设计

国际象棋app源码_国际象棋app源码大全

数据结构 八皇后

       去图书馆找找有关 数据结构 或是 算法设计 的书,一般都有8皇后的象棋由数字算源码源代码

       8皇后算法是算法的经典了 我记得我当年C语言程序上机就有这道题目 我直接按书上抄上去的 找不到的话就去网上下 网上下的一般会有很多错误 但一般是小错误 反复改下错就可以了

c国际象棋语言运行结果出问题

       这个间隔是他编译显示的问题,如果你在vc里面编译就不会有这个间隔,源源码支付中转源码但是码国arcgis addin源码vc里面编译也会有问题,那就是际象vlc解码源码棋盘是错位的

       这里修改需要将

       printf(" "); /*输出两个空格*/改为

       printf("  "); /*输出3个空格*/

       效果如下

在国际象棋的棋盘上(8*8),皇后可以走直线也可以走斜线(对角线).一个皇后能吃去同行和同对角线上

       代码如下:

#include <iostream>

       #include <cstdio>

       #define UINT unsigned int

       #define ULL unsigned long long

       #define MAXN ;

       using namespace std;

       int N,ans,minstep;

       UINT Row,Col;

       UINT Lft,Rgt;

       inline UINT lowbit(UINT x){

           return x&(-x);

       }

       bool check(){

           UINT tR=~Row,tC;

           UINT curR,curC;

           while(tR){

               curR=lowbit(tR);

               tR ^= curR;

               tC = ~Col;

               while(tC){

                   curC=lowbit(tC);

                   tC^=curC;

                   if((Rgt & (curR*curC))!=0 || (Lft & ((1<<(N-1))/curR*curC))!=0)

                       continue;

                   return false;

               }

           }

           return true;

       }

       void dfs(int row,int used,UINT col,UINT dig,UINT adg){

           if(used>minstep)

               return;

           if(row == N){

               if(check()){

                   if(used < minstep){

                       minstep = used;

                       ans=0;

                   }

                   ans++;

               }

               return;

           }

           UINT status=~(col|dig|adg);

           UINT binRow=(1<<row);

           while(status){

               UINT t=status&(-status);

               Col^=t;

               Row^=binRow;

               Lft^=((1<<(N-1))/binRow*t);

               Rgt^=(binRow*t);

               dfs(row+1,used+1,(t|col),(t|dig)>>1,(t|adg)<<1);

               Col^=t;

               Row^=binRow;

               Lft^=((1<<(N-1))/binRow*t);

               Rgt^=(binRow*t);

               status^=t;

           }

           dfs(row+1,used,col,dig>>1,adg<<1);

       }

       int main(){

           while(cin>>N){

               UINT col=(1<<N)-1;

               col=~col;

               ans=0;

               minstep=N+1;

               Row=Col=col;

               Rgt=Lft=0;

               dfs(0,0,col,0,0);

               cout<<minstep<<endl<<ans<<endl;

           }

           return 0;

       }

C语言综合设计

       å¦‚果对楼主有帮助,给个采纳好不,谢谢啦

       1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去

       æŽ‰ä¸æ»¡è¶³æ¡ä»¶çš„排列。 

       2.程序源代码:

       å¤åˆ¶ä»£ç ä»£ç å¦‚下:

       #include "stdio.h"

       #include "conio.h"

       main()

       {

       int i,j,k;

       printf("\n");

       for(i=1;i<5;i++) /*以下为三重循环*/

       for(j=1;j<5;j++)

       for (k=1;k<5;k++)

       {

       if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/

       printf("%d,%d,%d\n",i,j,k);

       }

       getch();

       }

       ==============================================================

       ã€ç¨‹åº2】

       é¢˜ç›®ï¼šä¼ä¸šå‘放的奖金根据利润提成。利润(I)低于或等于万元时,奖金可提%;利润高

       äºŽä¸‡å…ƒï¼Œä½ŽäºŽä¸‡å…ƒæ—¶ï¼Œä½ŽäºŽä¸‡å…ƒçš„部分按%提成,高于万元的部分,可可提

       æˆ7.5%;万到万之间时,高于万元的部分,可提成5%;万到万之间时高于

       ä¸‡å…ƒçš„部分,可提成3%;万到万之间时,高于万元的部分,可提成1.5%,高于

       ä¸‡å…ƒæ—¶ï¼Œè¶…过万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?

       1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。      

       2.程序源代码:

       å¤åˆ¶ä»£ç ä»£ç å¦‚下:

       #include "stdio.h"

       #include "conio.h"

       main()

       {

       long int i;

       int bonus1,bonus2,bonus4,bonus6,bonus,bonus;

       scanf("%ld",&i);

       bonus1=*0. 1;

       bonus2=bonus1+*0.;

       bonus4=bonus2+*0.5;

       bonus6=bonus4+*0.3;

       bonus=bonus6+*0.;

       if(i<=)

       bonus=i*0.1;

       else if(i<=)

       bonus=bonus1+(i-)*0.;

       else if(i<=)

       bonus=bonus2+(i-)*0.;

       else if(i<=)

       bonus=bonus4+(i-)*0.;

       else if(i<=)

       bonus=bonus6+(i-)*0.;

       else

       bonus=bonus+(i-)*0.;

       printf("bonus=%d",bonus);

       getch(); 

       }

       ==============================================================

       ã€ç¨‹åº3】

       é¢˜ç›®ï¼šä¸€ä¸ªæ•´æ•°ï¼Œå®ƒåŠ ä¸ŠåŽæ˜¯ä¸€ä¸ªå®Œå…¨å¹³æ–¹æ•°ï¼Œå†åŠ ä¸Šåˆæ˜¯ä¸€ä¸ªå®Œå…¨å¹³æ–¹æ•°ï¼Œè¯·é—®è¯¥æ•°æ˜¯å¤šå°‘?

       1.程序分析:在万以内判断,先将该数加上后再开方,再将该数加上后再开方,如果开方后

       çš„结果满足如下条件,即是结果。请看具体分析:

       2.程序源代码:

       å¤åˆ¶ä»£ç ä»£ç å¦‚下:

       #include "math.h"

       #include "stdio.h"

       #include "conio.h"

       main()

       {

       long int i,x,y,z;

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

       {

       x=sqrt(i+); /*x为加上后开方后的结果*/

       y=sqrt(i+); /*y为再加上后开方后的结果*/

       if(x*x==i+&&y*y==i+) /*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/

       printf("\n%ld\n",i);

       }

       getch();

       }

       ==============================================================

       ã€ç¨‹åº4】

       é¢˜ç›®ï¼šè¾“入某年某月某日,判断这一天是这一年的第几天?

       1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊

       æƒ…况,闰年且输入月份大于3时需考虑多加一天。

       2.程序源代码:

       å¤åˆ¶ä»£ç ä»£ç å¦‚下:

       #include "stdio.h"

       #include "conio.h"

       main()

       {

       int day,month,year,sum,leap;

       printf("\nplease input year,month,day\n");

       scanf("%d,%d,%d",&year,&month,&day);

       switch(month) /*先计算某月以前月份的总天数*/

       {

       case 1:sum=0;break;

       case 2:sum=;break;

       case 3:sum=;break;

       case 4:sum=;break;

       case 5:sum=;break;

       case 6:sum=;break;

       case 7:sum=;break;

       case 8:sum=;break;

       case 9:sum=;break;

       case :sum=;break;

       case :sum=;break;

       case :sum=;break;

       default:printf("data error");break;

       }

       sum=sum+day; /*再加上某天的天数*/

       if(year%==0||(year%4==0&&year%!=0)) /*判断是不是闰年*/

       leap=1;

       else

       leap=0;

       if(leap==1&&month>2) /*如果是闰年且月份大于2,总天数应该加一天*/

       sum++;

       printf("It is the %dth day.",sum);

       getch(); 

       }

       ==============================================================

       ã€ç¨‹åº5】

       é¢˜ç›®ï¼šè¾“入三个整数x,y,z,请把这三个数由小到大输出。

       1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,

       ç„¶åŽå†ç”¨x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。

       2.程序源代码:

       å¤åˆ¶ä»£ç ä»£ç å¦‚下:

       #include "stdio.h"

       #include "conio.h"

       main()

       {

       int x,y,z,t;

       scanf("%d%d%d",&x,&y,&z);

       if (x>y)

       { t=x;x=y;y=t;} /*交换x,y的值*/

       if(x>z)

       { t=z;z=x;x=t;} /*交换x,z的值*/

       if(y>z)

       { t=y;y=z;z=t;} /*交换z,y的值*/

       printf("small to big: %d %d %d\n",x,y,z);

       getch(); 

       }

       ==============================================================

       ã€ç¨‹åº6】

       é¢˜ç›®ï¼šç”¨*号输出字母C的图案。

       1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。

       2.程序源代码:

       å¤åˆ¶ä»£ç ä»£ç å¦‚下:

       #include "stdio.h"

       #include "conio.h"

       main()

       {

       printf("Hello C-world!\n");

       printf(" ****\n");

       printf(" *\n");

       printf(" * \n");

       printf(" ****\n");

       getch(); 

       }

       ==============================================================

       ã€ç¨‹åº7】

       é¢˜ç›®ï¼šè¾“出特殊图案,请在c环境中运行,看一看,Very Beautiful!

       1.程序分析:字符共有个。不同字符,图形不一样。      

       2.程序源代码:

       å¤åˆ¶ä»£ç ä»£ç å¦‚下:

       #include "stdio.h"

       #include "conio.h"

       main()

       {

       char a=,b=;

       printf("%c%c%c%c%c\n",b,a,a,a,b);

       printf("%c%c%c%c%c\n",a,b,a,b,a);

       printf("%c%c%c%c%c\n",a,a,b,a,a);

       printf("%c%c%c%c%c\n",a,b,a,b,a);

       printf("%c%c%c%c%c\n",b,a,a,a,b);

       getch(); 

       }

       ==============================================================

       ã€ç¨‹åº8】

       é¢˜ç›®ï¼šè¾“出9*9口诀。

       1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。

       2.程序源代码:

       å¤åˆ¶ä»£ç ä»£ç å¦‚下:

       #include "stdio.h"

       #include "conio.h"

       main()

       {

       int i,j,result;

       printf("\n");

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

       {

       for(j=1;j<;j++)

       {

       result=i*j;

       printf("%d*%d=%-3d",i,j,result); /*-3d表示左对齐,占3位*/

       }

       printf("\n"); /*每一行后换行*/

       }

       getch();

       }

       ==============================================================

       ã€ç¨‹åº9】

       é¢˜ç›®ï¼šè¦æ±‚输出国际象棋棋盘。

       1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。

       2.程序源代码:

       å¤åˆ¶ä»£ç ä»£ç å¦‚下:

       #include "stdio.h"

       #include "conio.h"

       main()

       {

       int i,j;

       for(i=0;i<8;i++)

       {

       for(j=0;j<8;j++)

       if((i+j)%2==0)

       printf("%c%c",,);

       else

       printf("  ");

       printf("\n");

       }

       getch(); 

       }

       ============================================================== 

       ã€ç¨‹åºã€‘

       é¢˜ç›®ï¼šæ‰“印楼梯,同时在楼梯上方打印两个笑脸。 

       1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。

       2.程序源代码:

       å¤åˆ¶ä»£ç ä»£ç å¦‚下:

       #include "stdio.h"

       #include "conio.h"

       main()

       {

       int i,j;

       printf("\1\1\n"); /*输出两个笑脸*/

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

       {

       for(j=1;j<=i;j++)

       printf("%c%c",,);

       printf("\n");

       }

       getch(); 

       }

       ã€ç¨‹åºã€‘

       é¢˜ç›®ï¼šå¤å…¸é—®é¢˜ï¼šæœ‰ä¸€å¯¹å…”子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月

       åŽæ¯ä¸ªæœˆåˆç”Ÿä¸€å¯¹å…”子,假如兔子都不死,问每个月的兔子总数为多少?

       1.程序分析: 兔子的规律为数列1,1,2,3,5,8,,....

       2.程序源代码:

       å¤åˆ¶ä»£ç ä»£ç å¦‚下:

       #include "stdio.h"

       #include "conio.h"

       main()

       {

       long f1,f2;

       int i;

       f1=f2=1;

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

       {

       printf("%ld %ld",f1,f2);

       if(i%2==0) printf("\n"); /*控制输出,每行四个*/

       f1=f1+f2; /*前两个月加起来赋值给第三个月*/

       f2=f1+f2; /*前两个月加起来赋值给第三个月*/

       }

       getch();

       }

       ==============================================================

       ã€ç¨‹åºã€‘

       é¢˜ç›®ï¼šåˆ¤æ–­-之间有多少个素数,并输出所有素数。

       1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,

       åˆ™è¡¨æ˜Žæ­¤æ•°ä¸æ˜¯ç´ æ•°ï¼Œåä¹‹æ˜¯ç´ æ•°ã€‚       

       2.程序源代码:

       å¤åˆ¶ä»£ç ä»£ç å¦‚下:

       #include "stdio.h"

       #include "conio.h"

       #include "math.h"

       main()

       {

       int m,i,k,h=0,leap=1;

       printf("\n");

       for(m=;m<=;m++)

       {

       k=sqrt(m+1);

       for(i=2;i<=k;i++)

       if(m%i==0)

       {

       leap=0;

       break;

       }

       if(leap)

       {

       printf("%-4d",m);

       h++;

       if(h%==0)

       printf("\n");

       }

       leap=1;

       }

       printf("\nThe total is %d",h);

       getch();

       }

       ==============================================================

       ã€ç¨‹åºã€‘

       é¢˜ç›®ï¼šæ‰“印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数

       æœ¬èº«ã€‚例如:是一个“水仙花数”,因为=1的三次方+5的三次方+3的三次方。

       1.程序分析:利用for循环控制-个数,每个数分解出个位,十位,百位。

       2.程序源代码:

       å¤åˆ¶ä»£ç ä»£ç å¦‚下:

       #include "stdio.h"

       #include "conio.h"

       main()

       {

       int i,j,k,n;

       printf("'water flower'number is:");

       for(n=;n<;n++)

       {

       i=n/;/*分解出百位*/

       j=n/%;/*分解出十位*/

       k=n%;/*分解出个位*/

       if(i*+j*+k==i*i*i+j*j*j+k*k*k)

       printf("%-5d",n);

       }

       getch();

       }

       ==============================================================

       ã€ç¨‹åºã€‘

       é¢˜ç›®ï¼šå°†ä¸€ä¸ªæ­£æ•´æ•°åˆ†è§£è´¨å› æ•°ã€‚例如:输入,打印出=2*3*3*5。

       ç¨‹åºåˆ†æžï¼šå¯¹n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:

       (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

       (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,

       é‡å¤æ‰§è¡Œç¬¬ä¸€æ­¥ã€‚

       (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

       2.程序源代码:

       å¤åˆ¶ä»£ç ä»£ç å¦‚下:

       /* zheng int is divided yinshu*/

       #include "stdio.h"

       #include "conio.h"

       main()

       {

       int n,i;

       printf("\nplease input a number:\n");

       scanf("%d",&n);

       printf("%d=",n);

       for(i=2;i<=n;i++)

       while(n!=i)

       {

       if(n%i==0)

       {

       printf("%d*",i);

       n=n/i;

       }

       else

       break;

       }

       printf("%d",n);

       getch();

       }

       ==============================================================

       ã€ç¨‹åºã€‘

       é¢˜ç›®ï¼šåˆ©ç”¨æ¡ä»¶è¿ç®—符的嵌套来完成此题:学习成绩>=分的同学用A表示,-分之间的用B表示,

       åˆ†ä»¥ä¸‹çš„用C表示。

       1.程序分析:(a>b)?a:b这是条件运算符的基本例子。

       2.程序源代码:

       å¤åˆ¶ä»£ç ä»£ç å¦‚下:

       #include "stdio.h"

       #include "conio.h"

       main()

       {

       int score;

       char grade;

       printf("please input a score\n");

       scanf("%d",&score);

       grade=score>=?'A':(score>=?'B':'C');

       printf("%d belongs to %c",score,grade);

       getch();

       }

       ==============================================================

       ã€ç¨‹åºã€‘

       é¢˜ç›®ï¼šè¾“入两个正整数m和n,求其最大公约数和最小公倍数。

       1.程序分析:利用辗除法。

       2.程序源代码:

       å¤åˆ¶ä»£ç ä»£ç å¦‚下:

       #include "stdio.h"

       #include "conio.h"

       main()

       {

       int a,b,num1,num2,temp;

       printf("please input two numbers:\n");

       scanf("%d,%d",&num1,&num2);

       if(num1<num2)/*交换两个数,使大数放在num1上*/

       {

       temp=num1;

       num1=num2;

       num2=temp;

       }

       a=num1;b=num2;

       while(b!=0)/*利用辗除法,直到b为0为止*/

       {

       temp=a%b;

       a=b;

       b=temp;

       }

       printf("gongyueshu:%d\n",a);

       printf("gongbeishu:%d\n",num1*num2/a);

       getch();

       }

       ==============================================================

       ã€ç¨‹åºã€‘

       é¢˜ç›®ï¼šè¾“入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

       1.程序分析:利用while语句,条件为输入的字符不为'\n'.

       2.程序源代码:

       å¤åˆ¶ä»£ç ä»£ç å¦‚下:

       #include "stdio.h"

       #include "conio.h"

       main()

       {

       char c;

       int letters=0,space=0,digit=0,others=0;

       printf("please input some characters\n");

       while((c=getchar())!='\n')

       {

       if(c>='a'&&c<='z'||c>='A'&&c<='Z')

       letters++;

       else if(c==' ')

       space++;

       else if(c>='0'&&c<='9')

       digit++;

       else

       others++;

       }

       printf("all in all:char=%d space=%d digit=%d others=%d\n",letters,

       space,digit,others);

       getch();

       }

       ==============================================================

       ã€ç¨‹åºã€‘

       é¢˜ç›®ï¼šæ±‚s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2++++(此时

       å…±æœ‰5个数相加),几个数相加有键盘控制。

       1.程序分析:关键是计算出每一项的值。

       2.程序源代码:

       å¤åˆ¶ä»£ç ä»£ç å¦‚下:

       #include "stdio.h"

       #include "conio.h"

       main()

       {

       int a,n,count=1;

       long int sn=0,tn=0;

       printf("please input a and n\n");

       scanf("%d,%d",&a,&n);

       printf("a=%d,n=%d\n",a,n);

       while(count<=n)

       {

       tn=tn+a;

       sn=sn+tn;

       a=a*;

       ++count;

       }

       printf("a+aa+...=%ld\n",sn);

       getch();

       }

       ==============================================================

       ã€ç¨‹åºã€‘

       é¢˜ç›®ï¼šä¸€ä¸ªæ•°å¦‚果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程

       æ‰¾å‡ºä»¥å†…的所有完数。

       1. 程序分析:请参照程序<--上页程序.

       2.程序源代码:

       å¤åˆ¶ä»£ç ä»£ç å¦‚下:

       #include "stdio.h"

       #include "conio.h"

       main()

       {

       static int k[];

       int i,j,n,s;

       for(j=2;j<;j++)

       {

       n=-1;

       s=j;

       for(i=1;i<j;i++)

       {

       if((j%i)==0)

       {

       n++;

       s=s-i;

       k[n]=i;

       }

       }

       if(s==0)

       {

       printf("%d is a wanshu",j);

       for(i=0;i<n;i++)

       printf("%d,",k);

       printf("%d\n",k[n]);

       }

       }

       getch();

       }

       ==============================================================

       ã€ç¨‹åºã€‘

       é¢˜ç›®ï¼šä¸€çƒä»Žç±³é«˜åº¦è‡ªç”±è½ä¸‹ï¼Œæ¯æ¬¡è½åœ°åŽåè·³å›žåŽŸé«˜åº¦çš„一半;再落下,求它在

       ç¬¬æ¬¡è½åœ°æ—¶ï¼Œå…±ç»è¿‡å¤šå°‘米?第次反弹多高?

       1.程序分析:见下面注释

       2.程序源代码:

       å¤åˆ¶ä»£ç ä»£ç å¦‚下:

       #include "stdio.h"

       #include "stdio.h"

       main()

       {

       float sn=.0,hn=sn/2;

       int n;

       for(n=2;n<=;n++)

       {

       sn=sn+2*hn;/*第n次落地时共经过的米数*/

       hn=hn/2; /*第n次反跳高度*/

       }

       printf("the total of road is %f\n",sn);

       printf("the tenth is %f meter\n",hn);

       getch();

       }

相关推荐
一周热点