回 帖 发 新 帖 刷新版面

主题:入门必做的题

1.  给定等式  A B C D E     其中每个字母代表一个数字,且不同数字对应不
                    D F G     同字母。编程求出这些数字并且打出这个数字的
             +      D F G     算术计算竖式。

             ───────

                X Y Z D E



  2. A、B、C、D、E五名学生有可能参加计算机竞赛,根据下列条件判断哪些
  人参加了竞赛:

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

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

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

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

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



  3. 打印一个 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



  4. 在N行N列的数阵中, 数K(1〈=K〈=N)在每行和每列中出现且仅
  出现一次,这样的数阵叫N阶拉丁方阵。例如下图就是一个五阶拉丁方阵。
  编一程序,从键盘输入N值后,打印出所有不同的N阶拉丁方阵,并统计个数。

        1  2  3  4  5
        2  3  4  5  1
        3  4  5  1  2
        4  5  1  2  3
        5  1  2  3  4


  5. 输入一个十进数,将其转换成 N 进制数(0<N<=16)。

回复列表 (共635个回复)

291 楼

/*2. A、B、C、D、E五名学生有可能参加计算机竞赛,根据下列条件判断哪些
  人参加了竞赛:

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

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

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

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

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

*/

292 楼

#include<iostream.h>
void condition(int a,int b,int c,int d,int e)
{
 int sign=1; 
     
 while(a==1) {if(b!=1) sign=0;}
  while(sign==1)
  {
  
      if((b+c)!=1) {sign=0;break;}
      if(c+d==1){ sign=0;break;}
      if( d+e==0) {sign=0;break;}
  if(e==1) 
  {
      if(a==0)sign=0;
  if(d==0)sign=0;
  }
  break;
  }
  if(sign==1)
cout<<a<<b<<c<<d<<e;
}
void main()
{
  int i;//0表示不参加,1表示参加
  for(i=1;i<=16;i++)
  {
      switch(i)
      {
        case 1:condition(0,0,0,0,0);break;
        case 2:condition(0,0,0,0,1);break;
        case 3:condition(0,0,0,1,0);break;              
        case 4:condition(0,0,0,1,1);break;                  
        case 5:condition(0,0,1,0,0);break;                  
        case 6:condition(0,0,1,0,1);break;                  
        case 7:condition(0,0,1,1,0);break;                 
       case 8:condition(0,0,1,1,1);break;                  
        case 9:condition(0,1,0,0,0);break;                  
        case 10:condition(0,1,0,0,1);break;                  
       case 11:condition(0,1,0,1,0);break;                  
      case 12:condition(0,1,0,1,1);break;                  
        case 13:condition(0,1,1,0,0);break;                 
        case 14:condition(0,1,1,0,1);break;                          
        case 15:condition(0,1,1,1,0);break;                                                              
        case 16:condition(0,1,1,1,1);break;
        case 17:condition(1,0,0,0,0);break;
        case 18:condition(1,0,0,0,1);break;
        case 19:condition(1,0,0,1,0);break;              
        case 20:condition(1,0,0,1,1);break;                  
        case 21:condition(1,0,1,0,0);break;                      
        case 22:condition(1,0,1,0,1);break;                          
        case 23:condition(1,0,1,1,0);break;                             
        case 24:condition(1,0,1,1,1);break;                                  
        case 25:condition(1,1,0,0,0);break;                                  
        case 26:condition(1,1,0,0,1);break;                                          
        case 27:condition(1,1,0,1,0);break;                                              
        case 28:condition(1,1,0,1,1);break;                                                  
        case 29:condition(1,1,1,0,0);break;                                                  
        case 30:condition(1,1,1,0,1);break;                                                          
        case 31:condition(1,1,1,1,0);break;                                                              
        case 32:condition(1,1,1,1,1);break;
                                                                                             
  }
  }
}

293 楼

结果是00110对吗

294 楼

好哦,我要。。。

295 楼

好!!

296 楼

ding

297 楼

我是新手。。这里的好像都很难。。有些题目也看不明白倒底是让我做什么。。有没有人告诉我。这些答案啊。。虽然我自己编程最重要的就是要我自己去想去。研究。。但我也想学学你们做题的思路和方法

298 楼

唉..自信又一次被打击拉...还是好多都不会呀.....

299 楼

有没有代码?

300 楼

第十一题:我只做了六个数的,要做二十个数的改一下数组就行了!
#include "stdio.h"

int fun(int ss)
{int i;
 for (i=2;i<ss;i++)
      if (ss%i==0)
          break;
    if (i>=ss)
        return 1;
    else
        return 0;
}

void main()
{int i=0,location=1,k,a[6]={1,2,3,4,5,6},sum,m,t;
 clrscr();
 while (i<6)
 {if (i==5)
     sum=a[i]+a[0];
  else
     sum=a[i]+a[i+1];
  if (fun(sum))
     {if (i==5&&location<=6)
     {printf("%d ",location);
      for (m=0;m<6;m++)
          if (a[m]==location)
          i=m;
      for (k=i-1;k>=0;k--)
          printf("%d ",a[k]);
      for (k=5;k>i;k--)
          printf("%d ",a[k]);
          printf("\n");
          printf("%d ",location);
      for (k=i+1;k<6;k++)
          printf("%d ",a[k]);
      for (k=0;k<i;k++)
          printf("%d ",a[k]);
          printf("\n");
          location++;
     }
     else
    {i++;continue;}
      }
  else
    {t=a[i];a[i]=a[i-2];a[i-2]=t;i=0;}
    }
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册