回 帖 发 新 帖 刷新版面

主题:入门必做的题

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

461 楼


#include <cstdlib>
#include <iostream>
 //编写一个程序,当输入不超过60个字符组成的英文文字时,计算机将这个句子
 //中的字母按英文字典字母顺序重新排列,排列后的单词的长度要与原始句子中的长度
 //相同。例如:
// 输入:
//THE PRICE OFBREAD IS ¥1 25 PER POUND
//输出:
//ABC DDEEE EFHIINO OP ¥1 25 PPR RRSTU
//并且要求只对A到Z的字母重新排列,其它字符保持原来的状态。

using namespace std;

int main(int argc, char *argv[])

{
    int n;//输入字符串的个数n<60
    cout<<"输入字符串的个数:";
    cin>>n;
    char temp=' ';
    int fuhao[n];
    char zifu[n]; 
    for(int i=0;i<n;i++)
    {
          int fuhao=0;//初始化字符数组 
    }
    
    cout<<"请输入字符串:";
    for(int i=0;i<n;i++)
    { 
            cin>>zifu[i];
            if((int)zifu[i]>40&&(int)zifu[i]<91)
            {
                  fuhao[i]=1;//设置一个符号标志 
            } 
    }
    
    for(int i=n;i>0;i--)
    {
            for(int j=0;j<i-1;j++)
            {
                    //if((int(zifu[j])<91&&int(zifu[j])>40)&&(int(zifu[j+1])<91&&int(zifu[j+1])>40))
                    if(fuhao[j])
                    {
                    if(fuhao[j+1])
                       {
                       if(zifu[j]>zifu[j+1])
                       {
                                         temp=zifu[j];
                                        zifu[j]=zifu[j+1];
                                        zifu[j+1]=temp;
                       }
                       }
                    }
                       
            }
    }
    for(int i=0;i<n;i++)
    {
            cout<<zifu[i];
    }
    
                    
     
    system("PAUSE");
    return EXIT_SUCCESS;
}
本题还应该有符号的输入,但我不知道该怎样将它们与字母区别开,并输出!请多指教!!谢谢!![em18][em18]

462 楼

我是新手,请问有详细答案吗?

463 楼


正好没题目呢

464 楼

我做的第四题,新手望指教
#include <iostream>
#include <stdio.h>

using namespace std;


//#define N 5;

void main()
{   
   int N;
   
   cout<<"Inout the value of matrix's N:"<<endl;
   cin>>N;

    int a[100];//={1,2,3,4,5};
    int b[100];
    
    for(int i=0;i<N;i++)
    {
        a[i]=i+1;
    }


    for(i=0;i<N;i++)
    {
        for(int j=0;j<N;j++)
        {
          if( (a[j]+i)<(N+1) )

          b[j]=( (a[j]+i)%(N+1) );
          
          else
          b[j]=( (a[j]+i+1)%(N+1) );
         
          
          cout<<b[j];
          
          if( (j%(N-1))==0&&j!=0 ) cout<<endl;

        }
    }

}

465 楼

我做的第四题,新手望指教
#include <iostream>
#include <stdio.h>

using namespace std;


//#define N 5;

void main()
{   
   int N;
   
   cout<<"Inout the value of matrix's N:"<<endl;
   cin>>N;

    int a[100];//={1,2,3,4,5};
    int b[100];
    
    for(int i=0;i<N;i++)
    {
        a[i]=i+1;
    }


    for(i=0;i<N;i++)
    {
        for(int j=0;j<N;j++)
        {
          if( (a[j]+i)<(N+1) )

          b[j]=( (a[j]+i)%(N+1) );
          
          else
          b[j]=( (a[j]+i+1)%(N+1) );
         
          
          cout<<b[j];
          
          if( (j%(N-1))==0&&j!=0 ) cout<<endl;

        }
    }

}

466 楼

我做的第四题,新手望指教
#include <iostream>
#include <stdio.h>

using namespace std;


//#define N 5;

void main()
{   
   int N;
   
   cout<<"Inout the value of matrix's N:"<<endl;
   cin>>N;

    int a[100];//={1,2,3,4,5};
    int b[100];
    
    for(int i=0;i<N;i++)
    {
        a[i]=i+1;
    }


    for(i=0;i<N;i++)
    {
        for(int j=0;j<N;j++)
        {
          if( (a[j]+i)<(N+1) )

          b[j]=( (a[j]+i)%(N+1) );
          
          else
          b[j]=( (a[j]+i+1)%(N+1) );
         
          
          cout<<b[j];
          
          if( (j%(N-1))==0&&j!=0 ) cout<<endl;

        }
    }

}

467 楼

我做的第四题,新手望指教
#include <iostream>
#include <stdio.h>

using namespace std;


//#define N 5;

void main()
{   
   int N;
   
   cout<<"Inout the value of matrix's N:"<<endl;
   cin>>N;

    int a[100];//={1,2,3,4,5};
    int b[100];
    
    for(int i=0;i<N;i++)
    {
        a[i]=i+1;
    }


    for(i=0;i<N;i++)
    {
        for(int j=0;j<N;j++)
        {
          if( (a[j]+i)<(N+1) )

          b[j]=( (a[j]+i)%(N+1) );
          
          else
          b[j]=( (a[j]+i+1)%(N+1) );
         
          
          cout<<b[j];
          
          if( (j%(N-1))==0&&j!=0 ) cout<<endl;

        }
    }

}

468 楼

我做的第四题,新手望指教
#include <iostream>
#include <stdio.h>

using namespace std;


//#define N 5;

void main()
{   
   int N;
   
   cout<<"Inout the value of matrix's N:"<<endl;
   cin>>N;

    int a[100];//={1,2,3,4,5};
    int b[100];
    
    for(i

469 楼

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

//by vqimwr 
//E+2*G=E或E+2*G=E+10*?,显然有G=0或5,同样F为0或5。两条件合起来可推出G为0,F为5。
//故只需要考虑等式
//                A B C 
//             +        D 
//             +      D
//             +      1
//           ──────
//                X Y Z 
//显然又可以看出X=A+1≤9,
//B+2≥10或B+1≥10,即B≥8或B≥9),故B=8或B=9,若为B=8,则有Y为0,不成立。故B=9,且Y=9+2-10=1
//剩下2,3,4及6,7,8可选,因为c+d+d+1≥22(小于30,因尾数不为1,21也不行),则d=7或d=8
//若d=7,则c+15≥22得c≥7,即c=8,得z=5,矛盾。故d=8
//a与x为连续数,只能为2,3或3,4,很显然有z≠3,当d=8,由17+c≥22有c≥5,有6,7可选,
//选6,则z=3,矛盾,所以,则z=4,剩下剩下2,3, 6可选,显然a=2,x=3,则e=6
//即:a=2,b=8, c=7, d=8, e=6,f=5,g=0,x=3,y=1,z=4,等式如下:
//                29786  
//                 850     
//             +    850     
//           ───────
//                31486
//这是一个可以直接推断出来的题目,所以,估计出题者的意图是不允许作任何推断,
//甚至包括x≠0等这种推断也不许,所有的过程都交给程序遍历
//程序略

470 楼


好贴,顶!!![em2]

我来回复

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