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

  • 14520692
    replied
    PHP Code:
    //Tam giac
    #include <stdio.h>
    #include <math.h>
    main(){
        
    long x1,y1,x2,y2,x3,y3;
        while(
    scanf("%ld%ld%ld%ld%ld%ld",&x1,&y1,&x2,&y2,&x3,&y3)>=1){
            
    //Tinh do dai:
            
    double c[3];
            
    c[0]=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
            
    c[1]=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));
            
    c[2]=sqrt((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2));
            
    //Kiem tra co phai là tam giac
            
    int kq=1;
            for(
    int i=0;i<3;i++){
                if(
    c[i]==c[(i+1)%3]+c[(i+2)%3]) kq=0;
            }
            
    //kiem tra tam giac vuong
            
    int v=0;
            if(
    kq!=0)
            for(
    int i=0;i<3;i++){
                
    float m = (float) c[i]*c[i];
                
    float n = (float) (c[(i+1)%3])*(c[(i+1)%3])+(c[(i+2)%3])*(c[(i+2)%3]);
                if(
    m==nv=1;
            }
            
    //kiem tra tam giac can hay deu
            
    int ca=0,d=0;
            if(
    c[0]==c[1]||c[1]==c[2]||c[0]==c[2])
                {
                    
    ca=1;
                    if(
    c[0]==c[1]&&c[1]==c[2]) d=1;
                }
            
    //xuat kq:
            
    if(kq==0printf("0\n");
                else{
                    if(
    d==1) {
                    
    printf("4\n");
                    
    ca=0;}
                    if(
    ca==1){
                    
    printf("3\n");
                    
    v=0;}
                    if(
    v==1printf("2\n");
                    if(
    ca==0&&v==0&&d==0printf("1\n");
                }
        }

    Em làm ra kết quả đúng như test mẫu nhưng submit thì bị wrong anwser.... thầy xem giúp em với

    Leave a comment:


  • toannv
    replied
    Originally posted by 14520725 View Post
    Thầy ơi ở bài Z:Tam giác
    Nếu như Tam Giác vuông cân thì sao Thầy?
    Thì em ghi tam giác cân.

    Leave a comment:


  • 14520725
    replied
    Thầy ơi ở bài Z:Tam giác
    Nếu như Tam Giác vuông cân thì sao Thầy?

    Leave a comment:


  • toannv
    replied
    Originally posted by 14520589 View Post
    Em bị Wrong Answer luôn rồi thầy. :shot:
    Em sai bộ test:
    999999999999999999999999999999 + 99999999999999999999999999

    Originally posted by 14520662 View Post
    [ATTACH=CONFIG]15586[/ATTACH]
    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:
    Bài đó đề nhầm em ơi: đúng là nhâp từ màn hình.
    Em bị sau nếu chuỗi có đoạn ". Den" hay ". Ben"
    Last edited by toannv; 30-12-2014, 21:17.

    Leave a comment:


  • 14520662
    replied
    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:
    Last edited by 14520662; 30-12-2014, 18:42.

    Leave a comment:


  • 14520589
    replied
    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:

    Leave a comment:


  • toannv
    replied
    Đã 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.

    Leave a comment:


  • toannv
    replied
    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à
    Last edited by toannv; 30-12-2014, 07:50.

    Leave a comment:


  • 14520052
    replied
    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!
    Last edited by 14520052; 29-12-2014, 22:13.

    Leave a comment:


  • 14520589
    replied
    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);

    Leave a comment:


  • toannv
    replied
    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.
    Last edited by toannv; 29-12-2014, 19:04.

    Leave a comment:


  • 14520589
    replied
    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);

    Leave a comment:


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

    Leave a comment:


  • toannv
    replied
    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

    Leave a comment:


  • 14520538
    replied
    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

    Leave a comment:

LHQC

Collapse
Working...
X