回 帖 发 新 帖 刷新版面

主题:入门必做的题

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个回复)

361 楼


强啊!!

362 楼

我大一的,只有拿回去,一道一道慢慢研究,我不信解不出来

363 楼

哇塞,经典啊!除了经典的题目,还有那么多N人,佩服!
我可是要加把劲了阿,去年学完c,今年有学c++.可好多题都不会做啊!
请大家帮帮我啊,一起努力,Ok?!

364 楼

有答案程序吗??

365 楼





       在那里能找到答案呀,
        哪位高手能把答案发出来吗?
[fly]答案[/fly]

366 楼

第一题的答案,是正确的,但有点烦!
#include <iostream.h>
int main ()
{int A,B,C,D,E,F,G,H,M,N,P,Q,Z;
for(A=1;A<10;A++)
for(B=0;B<10;B++) 
for(C=0;C<10;C++) 
for(D=1;D<10;D++)
for(E=0;E<10;E++) 
for(F=0;F<10;F++) 
for(G=0;G<10;G++) 
{
    Z=A*10000+B*1000+C*100+D*10+E+D*100*2+F*10*2+G*2;
    H=Z/10000;M=Z%10000/1000;N=Z%1000/100;P=Z%100/10;Q=Z%10;
    if(B!=A&&C!=A&&C!=B&&D!=A&&D!=B&&D!=C&&E!=A&&E!=B&&E!=C&&E!=D&&F!=A&&F!=B&&F!=C&&F!=D&&F!=E&&G!=A&&G!=B&&G!=C&&G!=D&&G!=E&&G!=F
        &&H!=A&&H!=B&&H!=C&&H!=D&&H!=E&&H!=F&&H!=G&&H!=M&&H!=N&&M!=A&&M!=B&&M!=C&&M!=D&&M!=E&&M!=F
        &&M!=G&&M!=N&&N!=A&&N!=B&&N!=C&&N!=D&&N!=E&&N!=F&&N!=G&&P==D&&Q==E)
    {   cout<<" "<<A<<B<<C<<D<<E<<endl;
        cout<<"   "<<D<<F<<G<<endl;
        cout<<" + "<<D<<F<<G<<endl;
        cout<<"---------------"<<endl;
        cout<<" "<<H<<M<<N<<P<<Q<<endl;
    }
    

}
return 0;
}

367 楼

//第二题
#include <iostream.h>
int main ()
{
    int a,b,c,d,e;
    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==0&&(b+c)==1&&c==d&&(d+e)>=1&&((a==1&&b==1)||a==0)&&((e==1&&a==1&&d==1)||e==0))
        {
            cout<<"0代表不参加,1代表参加"<<endl;
            cout<<"ABCDE"<<endl<<a<<b<<c<<d<<e<<endl;
        }
    }
    return 0;
}

368 楼

谢谢.我一定一一做来

369 楼

第4题用循环链表做:
 # include <stdio.h>
# include <stdlib.h>
# define NULL 0

struct clist
{
  int data;
  struct clist *next;
};
typedef struct clist node;
typedef node *clink;
/*结构定义 */

void main()
{
  clink head=NULL,ptr=NULL;
  clink ptr1=NULL;
  int i,Num,j;
  j=1;
  printf("Input Num:");
  scanf("%d",&Num);
  head=(clink)malloc(sizeof(node));
  if(head==NULL)
     {
       printf("ERROR:");
       exit(1);
     }
  head->data=1;
  head->next=NULL;
  ptr1=head;
  for(i=2;i<=Num;i++)
    {
      ptr=(clink)malloc(sizeof(node));   
      if(ptr==NULL)
         {
           printf("ERROR:");
           exit(1);                  /*链表赋值*/
         }

      ptr->data=i;
      ptr->next=NULL;
      ptr1->next=ptr;
      ptr1=ptr;

    }
  ptr->next=head;
  ptr1=head;
 for(i=1;i<=Num;i++)
    {

      while(j<=Num)
        {
          printf("%d",ptr1->data);
          ptr1=ptr1->next;        
          j++;
        }                       /*输出*/
      printf("\n");
      j=1;
     ptr1=ptr1->next;/*后移*'
     }
}

370 楼

第一题
#include<stdio.h>
main()
{
   long a[10];
   int i;
   for(a[0]=1;a[0]<10;a[0]++)
      for(a[1]=0;a[1]<10;a[1]++)
      if(a[1]==a[0]) continue;
      else
     for(a[2]=0;a[2]<10;a[2]++)
     if(a[2]==a[1]||a[2]==a[0]) continue;
     else
        for(a[3]=1;a[3]<10;a[3]++)
        if(a[3]==a[2]||a[3]==a[1]||a[3]==a[0]) continue;
        else
           for(a[4]=0;a[4]<10;a[4]++)
           if(a[4]==a[3]||a[4]==a[2]||a[4]==a[1]||a[4]==a[0]) continue;
           else
          for(a[5]=0;a[5]<10;a[5]++)
          if(a[5]==a[4]||a[5]==a[3]||a[5]==a[2]||a[5]==a[1]||a[5]==a[0]) continue;
          else
              for(a[6]=0;a[6]<10;a[6]++)
              if(a[6]==a[5]||a[6]==a[4]||a[6]==a[3]||a[6]==a[2]||a[6]==a[1]||a[6]==a[0]) continue;
              else
             for(a[7]=1;a[7]<10;a[7]++)
             if(a[7]==a[6]||a[7]==a[5]||a[7]==a[4]||a[7]==a[3]||a[7]==a[2]||a[7]==a[1]||a[7]==a[0]) continue;
             else
                for(a[8]=0;a[8]<10;a[8]++)
                if(a[8]==a[7]||a[8]==a[6]||a[8]==a[5]||a[8]==a[4]||a[8]==a[3]||a[8]==a[2]||a[8]==a[1]||a[8]==a[0]) continue;
                else
                   for(a[9]=0;a[9]<10;a[9]++)
                   if(a[9]==a[8]||a[9]==a[7]||a[9]==a[6]||a[9]==a[5]||a[9]==a[4]||a[9]==a[3]||a[9]==a[2]||a[9]==a[1]||a[9]==a[0]) continue;
                   else
                  if(10000*a[0]+1000*a[1]+100*a[2]+10*a[3]+a[4]+200*a[3]+20*a[5]+2*a[6]==10000*a[7]+1000*a[8]+100*a[9]+10*a[3]+a[4])
                   for(i=0;i<10;i++)
                   printf("a[%d]=%2ld",i,a[i]);
}
第二题
#include<stdio.h>
main()
{
   int a,b,c,d,e;
   for(a=0;a<2;a++)
   for(b=0;b<2;b++)
   for(c=0;c<2;c++)
   for(d=0;d<2;d++)
   for(e=0;e<2;e++)
   if(b+c==1&&c==d&&d+e>0)
   {
     if(a>0)
     {
       if(b>0)
       {
     if(e>0)
     {
      if(a==1&&d==1)
          printf("a=%d, b=%d, c=%d, d=%d, e=%d\n",a,b,c,d,e);
     }
     else
     {
          printf("a=%d, b=%d, c=%d, d=%d, e=%d\n",a,b,c,d,e);
     }
       }
     }
     else
     {
       if(e>0)
       {
     if(a==1&&d==1)
         printf("a=%d, b=%d, c=%d, d=%d, e=%d\n",a,b,c,d,e);
       }
       else
       {
         printf("a=%d, b=%d, c=%d, d=%d, e=%d\n",a,b,c,d,e);
       }
     }
   }
}
第三题
#include<stdio.h>
main()
{
 int i,j,n;
 printf("Please N(3<N<20) N=: ");
 scanf("%d",&n);
 for(i=0;i<n;i++)
 {
   for(j=0;j<n;j++)
   if(i==0||j==0||i==n-1||j==n-1)
   printf(" T ");
   else
   {
   if(i==1||j==1||i==n-2||j==n-2)
   printf(" J ");
   else
   printf(" %d ",(i+j<n?(i<j?i:j):n-(i<j?j:i)-1)-1);
  }

   printf("\n");
 }
}
大家评价一下
谢谢

我来回复

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