Announcement

Collapse
No announcement yet.

Nơi luyện tập về lập trình C - Môn Nhập môn Lập trình

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Originally posted by 14520758 View Post
    Em cảm ơn thầy! mà sao break được mà return không được vậy thầy????:doubt:
    thực ra em còn chỉnh thêm 1 chỗ nữa
    PHP Code:
    #include <stdio.h> 
    #include <string.h> 
    main() 

        
    char str[100]; 
        
    int ijdodai
        while (
    gets(str)!=NULL
        { 
            if (
    strlen(str)==0) break; 
            
    int kt=1
            
    dodaistrlen(str); 
            for(
    i=0i<dodai;i++) 
                if (
    str[i]!=str[dodai-1-i])  
                    { 
                        
    printf("1\n"); 
                        
    kt=0
                        break; 
                     
                    } 
            if (
    kt==1printf("0\n"); 
        } 

    Comment


    • Thầy ơi cho em hỏi bài S:số thừa số nguyên tố là nhập 1 số hay nhiều số...nếu nhiều số thì có cần dừng chương trình khi không nhập số nữa không?

      Comment


      • Originally posted by 14520138 View Post
        Thầy ơi cho em hỏi bài S:số thừa số nguyên tố là nhập 1 số hay nhiều số...nếu nhiều số thì có cần dừng chương trình khi không nhập số nữa không?
        Như bài R trên đó em

        Comment


        • Thầy ơi cho em hỏi bài này sai chỗ nào hay la do chạy quá chậm ?
          PHP Code:
          #include<stdio.h>
          #include<math.h>
          int main()
          {
              
          unsigned long long i,n;
              
          int dem;
              while(
          scanf ("%lld",&n)>0)
              {    
                  
          dem=0;
                  for (
          i=2;i<=n;i++)
                      {
                          if (
          n%i==0)
                              {
                                  
          dem++;
                                  
          n/=i;
                                  
          i--;
                              }
                      }            
                  
          printf ("%d\n",dem);
              }

          14520138
          Bùi Minh Tiến Đạt
          Last edited by 14520138; 28-12-2014, 22:57.

          Comment


          • thầy ơi câu R đó, e để while(gets(a)>0) như 2 câu chuỗi A,B thì nó không được, còn e đổi thành while(gets(a)!=NULL) thì nó lại được là sao vậy thầy? khi nào >0 còn khi nào !=NULL

            Comment


            • Originally posted by 14520538 View Post
              thầy ơi câu R đó, e để while(gets(a)>0) như 2 câu chuỗi A,B thì nó không được, còn e đổi thành while(gets(a)!=NULL) thì nó lại được là sao vậy thầy? khi nào >0 còn khi nào !=NULL
              Em coi ở #98

              Comment


              • Bộ test bài T,S
                Attached Files

                Comment


                • Thầy ơi xem giúp em bài F cộng 2 số lớn với, bị báo lỗi Time Limit Exceeded. :nosebleed:
                  PHP Code:
                  #include<stdio.h>
                  #include<string.h>
                  void balance(charx,chary
                  {
                      
                  x=strrev(x);
                      for(
                  int i=strlen(x);i<strlen(y);i++)
                          
                  x[i]=48;
                      
                  x=strrev(x);
                  }
                  void del(charx
                  {
                      while((
                  x[0]<48)||(x[0]>57))
                      {
                          for(
                  int i=0;i<strlen(x)-1;i++)
                              
                  x[i]=x[i+1];
                          
                  x[strlen(x)-1]=NULL;
                      }
                  }
                  void tt(char a[],char b[])
                  {
                      
                  int j=0,i;
                      
                  int t[200];
                      
                  t[0]=0;
                      for(
                  i=strlen(a)-1;i>=0;i--)
                      {
                          if((
                  t[j]+a[i]+b[i]-96)>9)
                          {
                              
                  t[j]+=(a[i]+b[i]-96)-10;
                              
                  t[j+1]=1;
                          }
                          else
                          {
                              
                  t[j]+=(a[i]+b[i]-96);
                              
                  t[j+1]=0;
                          }    
                          
                  j++;
                      }
                      for(
                  i=j-1;i>=0;i--)            
                          
                  printf("%d",t[i]);
                  }
                  main()
                  {
                      
                  FILEf;
                      
                  f=fopen("BaiF.inp","rt");
                      
                  int n;
                      
                  char a[25],b[25];
                      
                  fscanf(f,"%d",&n);
                      do
                      {
                          
                  fscanf(f,"%s",&a);
                          
                  fscanf(f,"%s",&b);
                          if((
                  a[0]==48))
                          {
                              
                  printf("%s\n",b);
                              
                  a[0]=NULL;b[0]=NULL;
                              continue;
                          }
                          else if((
                  b[0]==48))
                          {
                              
                  printf("%s\n",a);
                              
                  a[0]=NULL;b[0]=NULL;
                              continue;
                          }    
                          else 
                              if(
                  strlen(a)==strlen(b)) goto v;
                              else if(
                  strlen(a)<strlen(b))
                              {
                              
                                  
                  balance(a,b);
                                  
                  del(a);
                              }
                              else
                              {
                                  
                  balance(b,a);
                                  
                  del(b);
                              }
                          
                  v:
                          
                  tt(a,b);
                          
                  a[0]=NULL;b[0]=NULL;
                          
                  printf("\n");
                      }
                      while(--
                  n>0);
                      
                  fclose(f);

                  Comment


                  • Originally posted by 14520589 View Post
                    Thầy ơi xem giúp em bài F cộng 2 số lớn với, bị báo lỗi Time Limit Exceeded. :nosebleed:
                    PHP Code:
                    #include<stdio.h>
                    #include<string.h>
                    void balance(charx,chary
                    {
                        
                    x=strrev(x);
                        for(
                    int i=strlen(x);i<strlen(y);i++)
                            
                    x[i]=48;
                        
                    x=strrev(x);
                    }
                    void del(charx
                    {
                        while((
                    x[0]<48)||(x[0]>57))
                        {
                            for(
                    int i=0;i<strlen(x)-1;i++)
                                
                    x[i]=x[i+1];
                            
                    x[strlen(x)-1]=NULL;
                        }
                    }
                    void tt(char a[],char b[])
                    {
                        
                    int j=0,i;
                        
                    int t[200];
                        
                    t[0]=0;
                        for(
                    i=strlen(a)-1;i>=0;i--)
                        {
                            if((
                    t[j]+a[i]+b[i]-96)>9)
                            {
                                
                    t[j]+=(a[i]+b[i]-96)-10;
                                
                    t[j+1]=1;
                            }
                            else
                            {
                                
                    t[j]+=(a[i]+b[i]-96);
                                
                    t[j+1]=0;
                            }    
                            
                    j++;
                        }
                        for(
                    i=j-1;i>=0;i--)            
                            
                    printf("%d",t[i]);
                    }
                    main()
                    {
                        
                    FILEf;
                        
                    f=fopen("BaiF.inp","rt");
                        
                    int n;
                        
                    char a[25],b[25];
                        
                    fscanf(f,"%d",&n);
                        do
                        {
                            
                    fscanf(f,"%s",&a);
                            
                    fscanf(f,"%s",&b);
                            if((
                    a[0]==48))
                            {
                                
                    printf("%s\n",b);
                                
                    a[0]=NULL;b[0]=NULL;
                                continue;
                            }
                            else if((
                    b[0]==48))
                            {
                                
                    printf("%s\n",a);
                                
                    a[0]=NULL;b[0]=NULL;
                                continue;
                            }    
                            else 
                                if(
                    strlen(a)==strlen(b)) goto v;
                                else if(
                    strlen(a)<strlen(b))
                                {
                                
                                    
                    balance(a,b);
                                    
                    del(a);
                                }
                                else
                                {
                                    
                    balance(b,a);
                                    
                    del(b);
                                }
                            
                    v:
                            
                    tt(a,b);
                            
                    a[0]=NULL;b[0]=NULL;
                            
                    printf("\n");
                        }
                        while(--
                    n>0);
                        
                    fclose(f);

                    Trong bộ test có số dài đến 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890 1234567890 lận. Em dùng a[25] là thiếu rồi.
                    Chưa kể code em còn sai: còn lỗi số 0 vô nghĩa phía trước và các lỗi khác.
                    toannv
                    Trưởng phòng CôngTác SinhViên
                    Last edited by toannv; 29-12-2014, 19:04.

                    Comment


                    • Thầy ới làm quài không được :sosad:
                      PHP Code:
                      #include<stdio.h>
                      #include<string.h>
                      void balance(charxint r)
                      {
                          
                      int i;
                          for(
                      i=strlen(x);i>=0;i--)
                              
                      x[i+r]=x[i];
                          for(
                      i=r-1;i>=0;i--)
                               
                      x[i]=48;
                      }
                      void tt(chara,charb)
                      {
                          
                      int j=0,i;
                          
                      int t[201];
                          
                      char z=48;
                          for(
                      i=strlen(a)-1;i>=0;i--)
                          {
                              if((
                      z+a[i]+b[i])>153)
                              {
                                  
                      t[j]=(z+a[i]+b[i]-144)%10;
                                  
                      z=49;
                              }
                              else
                              {
                                  
                      t[j]=(z+a[i]+b[i]-144);
                                  
                      z=48;
                              }    
                              
                      j++;
                          }
                          if(
                      z==49t[j]=1;
                          else    
                      t[j--]=NULL;
                          for(
                      i=j;i>=0;i--)        
                          {
                              if(
                      t[i]==0&&t[i+1]==0&&i!=0)    
                                   continue;
                              else
                                  
                      printf("%d",t[i]);
                          }    
                      }
                      main()
                      {
                          
                      FILEf;
                          
                      f=fopen("BaiF.inp","rt");
                          
                      int n;
                          
                      char a[100],b[100];
                          
                      fscanf(f,"%d",&n);
                          while(
                      n-->0)
                          {
                              
                      fscanf(f,"%s%s",&a,&b);
                              if(
                      strlen(a)<strlen(b))
                                  
                      balance(a,strlen(b)-strlen(a));
                              else if(
                      strlen(a)>strlen(b))
                                  
                      balance(b,strlen(a)-strlen(b));
                              
                      tt(a,b);
                              
                      printf("\n");
                          };
                          
                      fclose(f);

                      Comment


                      • Thầy xem lại bài Q: ATM giúp e với, đề với ví dụ k thống nhất Output. Số tờ với Số cách cái nào đứng trước ?!
                        Với lại thầy nhớ sửa bộ test bài T
                        Cảm ơn thầy!
                        14520052
                        Lâm Minh Bảo
                        Last edited by 14520052; 29-12-2014, 22:13.

                        Comment


                        • Originally posted by 14520589 View Post
                          Thầy ới làm quài không được :sosad:
                          PHP Code:
                          main()
                          {
                              
                          char a[100],b[100];

                          Em nâng chuỗi a và b lên 200 đi, đề yêu cầu 200 mà
                          toannv
                          Trưởng phòng CôngTác SinhViên
                          Last edited by toannv; 30-12-2014, 07:50.

                          Comment


                          • Đã có thêm bài ... V, W, X, Y, Z rồi nhé các bạn. Đặc biệt các bài V... là bài của cuộc thi SV UIT & ATTT năm rồi.

                            Comment


                            • Originally posted by toannv View Post
                              Em nâng chuỗi a và b lên 200 đi, đề yêu cầu 200 mà
                              Em bị Wrong Answer luôn rồi thầy. :shot:

                              Comment


                              • baip.png
                                Thầy ới rốt cuộc để input sao :shot:
                                Nhân tiện cho em xin luôn bộ test bài này :cry:
                                14520662
                                Nguyễn Tấn Phát
                                Last edited by 14520662; 30-12-2014, 18:42.

                                Comment

                                LHQC

                                Collapse
                                Working...
                                X