当前位置: 代码迷 >> C语言 >> 两个让我抓狂的C语言编程题目,我搞了半天也没有搞定,不知道有高手能编出来 ...
  详细解决方案

两个让我抓狂的C语言编程题目,我搞了半天也没有搞定,不知道有高手能编出来 ...

热度:258   发布时间:2008-04-14 15:43:46.0
两个让我抓狂的C语言编程题目,我搞了半天也没有搞定,不知道有高手能编出来 !!
1. A、B、C、D、E五名学生有可能参加计算机竞赛,根据下列条件判断哪些
  人参加了竞赛:

   (1)A参加时,B也参加;

   (2)B和C只有一个人参加;

   (3)C和D或者都参加,或者都不参加;

   (4)D和E中至少有一个人参加;

   (5)如果E参加,那么A和D也都参加。



  2. 打印一个 N*N 的方阵,N为每边           N=15  打印出下面图形
字符的个数(3<N<20), 要求最               TTTTTTTTTTTTTTT
外一层为"T", 第二层为"J", 从第三层               TJJJJJJJJJJJJJT
起每层依次打印数字 1,2,3,...                     TJ11111111111JT
(右图以N为15为例)                           TJ12222222221JT
                                                  TJ12333333321JT
                                                  TJ12344444321JT
                                                  TJ12345554321JT
                                                  TJ12345654321JT
                                                  TJ12345554321JT
                                                  TJ12344444321JT
                                                  TJ12333333321JT
                                                  TJ12222222221JT
                                                  TJ11111111111JT
                                                  TJJJJJJJJJJJJJT
                                                  TTTTTTTTTTTTTTT
原来自己这么笨啊  
谢谢各位的帮助!!你们让我知道没有困难解决不了的,只是自己没有去动脑。有不多看别人的编程思想。
以后要好好练习

[[it] 本帖最后由 wwbbqq 于 2008-4-15 20:52 编辑 [/it]]
搜索更多相关的解决方案: C语言  抓狂  计算机  

----------------解决方案--------------------------------------------------------
这是LZ给大家的作业题?
----------------解决方案--------------------------------------------------------
LZ自己做吧,不难的
----------------解决方案--------------------------------------------------------
来个没有技术含量的
#include "stdio.h"
int main()
{
   printf("TTTTTTTTTTTTTTT
           TJJJJJJJJJJJJJT
           TJ11111111111JT
           TJ12222222221JT
           TJ12333333321JT
           TJ12344444321JT
           TJ12345554321JT
           TJ12345654321JT
           TJ12345554321JT
           TJ12344444321JT
           TJ12333333321JT
           TJ12222222221JT
           TJ11111111111JT
           TJJJJJJJJJJJJJT
           TTTTTTTTTTTTTTT");
  retrun 0;
}
----------------解决方案--------------------------------------------------------
够简单吧..效率高
----------------解决方案--------------------------------------------------------
我狂晕!!!!
难道没人知道 ???
----------------解决方案--------------------------------------------------------
都蛮简单的,
自己做
----------------解决方案--------------------------------------------------------
#include<stdio.h>
   #define min(a,b) (((a)<(b))?(a):(b))
   #define MinOfFour(a,b,c,d) min( (min(a,b)), (min(c,d)) )
   int main(void)
   {
   char Charactor[] = "TJ123456789";
   int n,mid;
   int i,j;
   scanf("%d",&n);
   mid = n/2;
   for(i=0; i<n; ++i)
   {
   for(j=0; j<n; ++j)
   {
   putchar(Charactor[MinOfFour(i,j,n-i-1,n-j-1)]);
   }
   putchar('\n');
   }
   getch();
   return 0;
   }
----------------解决方案--------------------------------------------------------
#include <stdio.h>
main()
   { int a,b,c,d,e; /*其中值1为参加,0为不参加*/
   for(a=0;a<=1;a++)
   for(b=0;b<=1;b++)
   for(c=0;c<=1;c++)
   for(d=0;d<=1;d++)
   for(e=0;e<=1;e++)
   
   if(((b&&!c)||(!b&&c))&&((c&&d)||(!c&&!d))&&(!(!d&&!e))&&(!(!d&&!e)))
  /*分别代表条件2~4*/
     
   if((a&&b||!a)&&(e&&(a&&d)||!e))/*代表条件1和5,特别注意a,e不一定参加*/
   printf("\n\na=%d b=%d c=%d d=%d e=%d\n",a,b,c,d,e);
   getch();
   return 0;
   }
----------------解决方案--------------------------------------------------------
#include<stdio.h>
#define TestBit(number,bit) (((number)&(1<<(bit)))!=0)
int main(void)
   {
   int i,j;
   for(i=0; i<32; ++i)
   {
   if( TestBit(i,0) && !TestBit(i,1) ) /*  A参加但B不参加,不符合第一条 */
   continue;
   if( TestBit(i,1) && TestBit(i,2) ) /*  B和C都参加,不符合第二条 */
   continue;
   if( TestBit(i,2) != TestBit(i,3) ) /*  C和D只有一个参加,不符合第三条 */
   continue;
   if( !TestBit(i,3) && !TestBit(i,4) ) /*  D和E都没参加,不符合第四条 */
   continue;
   if( TestBit(i,4) && !(TestBit(i,0)&&TestBit(i,3)) )
   /*  D参加,但A和D不全参加,不符合第五条 */
   continue; printf("参加竞赛的人是:\n");
   for(j=0;j<5;++j)
   if(TestBit(i,j))
   putchar('A'+j);
   printf("\n");
   }
   getch();
   return 0;
   }
----------------解决方案--------------------------------------------------------