Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: Lại Một bài mới cần nhờ anh em!!!

  1. #1
    Ngày gia nhập
    11 2007
    Bài viết
    1

    Cool Lại Một bài mới cần nhờ anh em!!!

    Bài này em làm ra có 2 lỗi kính mong các pác chỉ giáo :đề nghị ko chửi ..ngu nha!!
    Code:
    #include <stdio.h>
    #include <conio.h>
    void main()
    {long int n;
    long int tong;
    long int i;
    char ch;
    
    clrscr();
    while((ch!='k')&&(ch!='K'))
    {
    tong =0;
    printf("\n nhap vao mot so nguyen:");
    scanf("%d";&n);
    printf("\n cac uoc so cua %ld la :",n);
    for(i=1;i<n;i++)
    if(n%i==0)
    {printf("%5d",i);
    tong=tong+i;
    }
    printf("\ntong cac uoc so cua %ld bang  %ld",n,tong);
    if(tong ==n)
            printf("\n %5ld LA so hoan thien");
    printf("\nban co muon thuc hien lai ko(c/k)?);
    fflush(stdin);
    scanf("%c",&ch);
    }
    printf("\n an phim bat ki de ket thuc...");
    getch();
    }
    Chữ Ký Của DầuCùLàY(:`) :

  2. #2
    Ngày gia nhập
    11 2007
    Nơi ở
    Hà Nội
    Bài viết
    520

    Trích dẫn Nguyên bản được gửi bởi DầuCùLà Xem bài viết
    printf("\n cac uoc so cua %ld la :",n);
    for(i=1;i<n;i++)
    if(n%i==0)
    {printf("%5d",i);
    tong=tong+i;
    }
    Thực tế nếu bài toán chỉ là tìm các số hoàn thiện thì thuật toán của bạn quá lãng phí.
    Chương trình phải lặp đến n-1 trong khi các ước của n chỉ <=n/2
    đoạn code của mình như sau:
    Code:
    int so_hoan_thien(int n)
    {int i, s;
    for(s=0,i<=n/2;(s<=n)&&(i>0);++i)
        if(!(n%i)) s+=i;  /*nếu n%i ==0 */
    return(s==n);
    Trích dẫn Nguyên bản được gửi bởi DầuCùLà Xem bài viết
    char ch;

    clrscr();
    while((ch!='k')&&(ch!='K'))
    Nếu bạn viết như vậy thì ch chưa được gán ban đầu ->lỗi

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn