回 帖 发 新 帖 刷新版面

主题:入门必做的题

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

241 楼

感觉好难啊,是不是要C/C++整本念透了,上面的才可能都会做,最好每题都介绍一下原理,可以吗,让我们这些新手更快进步,可以吗?
我想再问一下,你是用什么来测算运行时间的

242 楼

谢谢你了,我正愁没题目做呢~

243 楼

这是入门的题吗?我们学了这么久。老师也不过叫我们用冒泡法排序啊,老大把答案给我吧!
我的邮箱  tangjieling@126.com

244 楼

做一做,看看是否入门了!!

245 楼

2个月的时间够吗?做这些题,而且有的不是很明确目的啊?

246 楼


247 楼

#include <malloc.h>
main()
{
        int x,y,a,b;
        int* array1;
        int* array2;
        int i,j,sum1,sum2;
        int flag;
 
        printf("put in thr init value x and y\n");
        scanf("%d,%d",&x,&y);
 
        sum1=0,sum2=0;
        a=x,b=y;/*keep the value of x and y*/
 
        while(x>1)
        {
               x=x/2;
               sum1++;
         }
 
         while(y>1)
         {
               y=y/2;
               sum2++;
          }
          
          array1=(int*) malloc((sum1+2)*sizeof(int));/*initi array1 and array2*/
          array2=(int*) malloc((sum2+2)*sizeof(int));

          x=a,y=b;
          
          for(i=sum1+1;i>0;i--)
          {
                array1[i]=a%2;
                a=a/2;
          }
          array1[0]=0;
    
           for(i=sum2+1;i>0;i--)
           {
                 array2[i]=b%2;
                 b=b/2;
            }
            array2[0]=0;
     
           for(i=0;i<sum1+2;i++)
           printf("%d",array1[i]);
     
            printf("\n");
     

248 楼

for(j=0;j<sum2+2;j++)
            printf("%d",array2[j]);
     
            printf("\n");
            
            flag=0;
            if(x>=y)
            {
                for(i=sum2+1;i>=0;i--)
                {
                    array1[i+sum1-sum2]=array1[i+sum1-sum2]+array2[i]+flag;
                    if(array1[i+sum1-sum2]>=2)
                    {
                        flag=1;
                        array1[i+sum1-sum2]=0;
                    }
                    else flag=0;
                }
                    for(j=sum1-sum2-1;j>=0;j--)
                    {
                        array1[j]=array1[j]+flag;
                            if(array1[i]>=2)
                            {
                                flag=1;
                                array1[i]=0;
                            }
                                else flag=0;
                           }
                           
                           for(i=0;i<sum1+2;i++)
                           printf("%d",array1[i]);
                           printf("\n");
               }
               if(x<y)
               {
                   for(i=sum1+1;i>=0;i--)
                {
                    array2[i+sum2-sum1]=array2[i+sum2-sum1]+array1[i]+flag;
                    if(array2[i+sum2-sum1]>=2)
                    {
                        flag=1;
                        array2[i+sum2-sum1]=0;
                    }
                    else flag=0;
                }
                    for(j=sum2-sum1-1;j>=0;j--)
                    {
                        array2[j]=array2[j]+flag;
                            if(array2[i]>=2)
                            {
                                flag=1;
                                array2[i]=0;
                            }
                                else flag=0;
                           }
                          
                           for(i=0;i<sum2+2;i++)
                           printf("%d",array2[i]);
                           printf("\n");
               }                        
}

249 楼

翻转硬币:
 turnover(int a[],int n)
 {
     int i,j;
     int count;
        for(count=0;count<n;count++)
        {
            for(i=0;i<n;i++)
            {
                if((i+count)!=n-1) a[i]=1-a[i];
                printf("%d ",a[i]);
            }
            printf("\n");
        }
                  
 }
 main()
 {
     int i;
     int n;
     int* array;
     printf("put in the needing turnover coin NUM:\n");
     scanf("%d",&n);
     if(n%2==0) array=(int*) malloc(n*sizeof(int));
     else 
     {
        printf("n is not a double,ERROR!\n");
         exit(0);
     }    
     for(i=0;i<n;i++)
     {
         array[i]=1;
        printf("%d ",array[i]);
     }
     printf("\n");
     turnover(array,n);
 }

250 楼

数学上去了
这些题也就没什么了

我来回复

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