Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 23 kết quả

Đề tài: em có bài tập này xin ý kiến các anh !

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

    Mặc định em có bài tập này xin ý kiến các anh !

    em mới tập tự học c . khi làm bài tập với tiêu đề là:
    nhập vào 2 số num1num2 .tìm tổng của tất cả các số lẽ nằm giữa 2 số đã được nhập !

    em làm như thế này các bác ạ !
    Code:
    #include<stdio.h>
    void main()
    {
    int num1,num2,i=0,sum=0;
    printf("nhap vao 2 so bat ky \n");
    printf("num1:");
    scanf("%d",&num1);
    printf("\nnum2 :");
    scanf("%d",&num2);
    if(num1>num2)
    	if(num2%2!=0)
    	for(i=num2;i<=num1;i+=2)
    	sum=sum+i;
    	else
    	for(i=num2+1;i<=num1;i+=2)
            sum=sum+i;
    else
        if(num1%2!=0)
          for (i=num1;i<=num2;i+=2)
          sum=sum+i;
        else
          for(i=num1+1;i<=num2;i+=2)
          sum=sum+i;                    
    printf("tong cua tat ca so le nam giua 2 so la : sum=%d",sum);
    }
    em thấy rắc rối quá . ai có phương pháp tối ưu hơn xin chỉ giáo giùm em !
    thank !
    Đã được chỉnh sửa lần cuối bởi buctuong : 23-10-2007 lúc 11:53 PM.

  2. #2
    Ngày gia nhập
    01 2007
    Nơi ở
    Somewhere I belong
    Bài viết
    168

    có cách này dùng vòng lặp for
    Code:
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        cout<<"Nhap vao so thu nhat: ";
        int a; cin>>a;
        cout<<"Nhap vao so thu hai: ";
        int b; cin>>b;
        int sum = 0;
        for(int i = a;i <= b;i++)
        {
                if(i % 2 != 0)
                {
                   sum = sum + i;         
                }       
        }
        cout<<sum<<endl;
        
        system("PAUSE");
        return EXIT_SUCCESS;
    }

  3. #3
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Convert sang C
    PHP Code:
    #include <stdlib.h>
    #include <stdio.h>
    #include <conio.h>  // <--- su dung getch()

    #define EXIT_SUCCESS 1

    int main(int argcchar *argv[])
    {
        
    int abisum 0;

        
    printf("Nhap vao so thu nhat: ");
        
    scanf("%d",&a);
        
    printf("Nhap vao so thu hai: ");
        
    scanf("%d",&b);

        for(
    a;<= b;i++) {
                if(
    != 0) {            
                   
    sum sum i;         
                }       
        }

        
    printf("Sum = %d",sum);
        
        
    // system("PAUSE");  <-- dung cai nay trong Dev-C++ : #include <dos.h>  - trong VC : #include <windows.h>
        
    getch();
        return 
    EXIT_SUCCESS;

    None!

  4. #4
    Ngày gia nhập
    10 2007
    Bài viết
    0

    các bác làm như trên nếu mà thằng b<a thì bó giò à !

  5. #5
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Bạn thêm 1 câu lệnh if xét 2 TH nếu a > b thì từ a->b ngược lại b > a thì từ b->a. thân !

  6. #6
    Ngày gia nhập
    10 2007
    Nơi ở
    đà nẵng
    Bài viết
    0

    Mặc định em có bài tập này xin ý kiến các anh !

    nếu làm như cách của xcross87 thì chương trình sẽ hok chạy vì lỗi cú pháp...
    theo tui được bik thì lệnh if còn vế sau nữa chứ hok đơn thuần như thế....

  7. #7
    Ngày gia nhập
    11 2006
    Bài viết
    633

    theo tui được bik thì lệnh if còn vế sau nữa chứ hok đơn thuần như thế....
    Xem thêm về lệnh if, nói biết tức là chỉ có biết chứ chưa hiểu
    Biết chưa chắc đã đúng.

  8. #8
    Ngày gia nhập
    10 2007
    Nơi ở
    HCMUNS
    Bài viết
    459

    Code có thể tinh chỉnh một số phần như sau:

    + Code riêng một hàm swap(a,b)
    Code:
     
    void Swap(int &a, int &b)
    {
           a ^= b ^= a ^= b; // chôm từ anh TQN :D
    }
    Sau đó check trong hàm main
    Code:
    if(a > b)
          Swap(a,b);
    + Code riêng hàm IsEvenNumber(int a)
    Code:
    bool IsEvenNumber(int a)
    {
            return (a % 2) == 0;
    }
    + Code riêng hàm TinhTongCacSoLe(int a, int b) : cái này thì chắc ko cải tiến gì được.

    Vậy code sẽ là:
    Code:
    - Input a
    - Input b
    - If a > b then Swap(a,b)
    - Call sum = TinhTongCacSoLe(a,b)
    - Output sum
    Keep moving forward!

    ... Retired ...

  9. #9
    Ngày gia nhập
    09 2006
    Bài viết
    711

    Bài này đơn giản mà sao các cậu viết phức tạp quá vậy. Tui code thẵng ra đây luôn nha, các cậu xem thử:
    Code:
    int CalcSumOfOddNumbers(int a, int b)
    {
        int sum = 0;
        int iMin = min(a, b);
        int iMax = max(a, b);
    
        for (int i = iMin; i <= iMax; ++i)
        {
            if (i % 2)
            {
                sum += i;
            }
        }
    
        return sum;
    }

  10. #10
    Ngày gia nhập
    10 2007
    Nơi ở
    HCMUNS
    Bài viết
    459

    Hí hí, sai gòi anh à
    Code:
    if (i % 2)   // cái này là xét số chẵn mừ :D
    Hơn nữa, nếu giả sử test với a = 3 và b = 5 thì hàm của anh (sau khi đã sửa) return về 8. Nhưng theo nguyên tắc thì phải là 0 mới đúng chứ

    Em cũng có suy nghĩ một tí về thằng này ở vấn đề : mỗi vòng lặp nên là i += 2 hay là chỉ cần ++i. Không biết thằng nào chạy nhanh hơn :-/
    Đã được chỉnh sửa lần cuối bởi nhc1987 : 24-10-2007 lúc 12:29 PM.
    Keep moving forward!

    ... Retired ...

Các đề tài tương tự

  1. [Kiếm Thế] Kiếm Thế Ngạo Thiên Kiếm Chạy Thử Nghiệm vào 10h ngày 15/09
    Gửi bởi c0jskull trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 5
    Bài viết cuối: 29-09-2013, 10:45 AM
  2. [Kiếm Thế] Kiếm Thế Kiếm Linh Chạy Thử Nghiệm vào 10h ngày 4/7
    Gửi bởi c0jskull trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 1
    Bài viết cuối: 05-07-2013, 12:16 PM
  3. [Kiếm Thế] Kiếm Thế Kiếm Linh Chạy Thử Nghiệm vào 10h ngày 4/7
    Gửi bởi c0jskull trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 03-07-2013, 10:30 PM

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