Trang 1 / 3 123 LastLast
Hiển thị kết quả từ 1 đến 10 / 21
  1. #1
    Tham gia
    25-06-2007
    Bài viết
    10
    Like
    0
    Thanked 0 Times in 0 Posts

    hỏi đáp về bài tập C/C++

    chào các bạn. mình mở topic này với mục đích có thể tập trung các bài tập về C/C++ về 1 nơi để người đọc có thể dễ tìm kiếm. đỡ phải đi tìm từng topic .
    Mình có 1 bài tập về lập trình C. mong mọi người giúp mình

    1. viết nguyên mẫu của các hàm( chỉ nguyên mẫu thôi)
    -nhập/xuất mảng 1 chiều/2 chiều
    -tính chu vi,diện tích,max,min
    -tìm kiếm số,chuỗi
    2.viết code hoàn chỉnh các yêu cầu sau( viết= hàm)
    a,1 string: -nhập,xuất
    - in ra string đảo ngược với string nhập vào
    -đếm từ,xóa từ
    -in mỗi từ trên 1 dòng
    -tìm kiếm
    b, với n string:
    -nhập/xuất
    -tìm và in ra xâu max/min
    -tìm độ dài trung bình.
    -tìm và in ra xâu có chứa xâu st
    -ghép xâu
    -sắp xếp
    3, Mảng 1 chiều:
    -nhập/xuất
    -sắp xếp
    -tính tổng toàn bộ/số dương/số chẵn,lẻ
    -tìm số nguyên tố,số chính phương,max,min,trung bình
    cảm ơn nhiều
    Quote Quote

  2. #2
    Tham gia
    10-05-2006
    Bài viết
    29
    Like
    0
    Thanked 0 Times in 0 Posts
    Hay nhỉ! Bác cũng tâm huyết đấy chứ.

  3. #3
    Tham gia
    05-06-2006
    Location
    HN
    Bài viết
    325
    Like
    0
    Thanked 0 Times in 0 Posts
    Bác herolong đưa ra ý kiến hay đó, những hàm này rất hay dùng cho những người bắt đầu học C/C++ như em

  4. #4
    Tham gia
    12-04-2007
    Location
    Việt Nam Quê Hương tui
    Bài viết
    241
    Like
    0
    Thanked 0 Times in 0 Posts
    Thật ra những bài này không khó chỉ cần biết sơ vài thuật toán là có thể làm được. Mình xin làm trước một vài bài nhưng theo kiểu C++ tức mình dùng cin, cout chứ không dùng printf hay scanf.
    1. Nhập xuất mảng 1, 2 chiều:
    //mang mot chieu
    for (int i=0;i<n;++i) cin>>a[i];//mang mot chieu a[100], n tu nhap
    //mang 2 chieu, ta xem như là ghi ma trận cấp m x n
    for (int i=0;i<m;++i)
    for (int j=0;j<n;++j)
    cin>>a[i][j];
    tinh chu vi, diện tích, max,min: quá chung chung không thể giải thích hết được. Mình chỉ làm phần max, min nhưng cho mảng thôi.
    max=a[0][0];//gán cho thằng lớn nhất là phần tử đầu tiên
    min=a[0][0];//tương tự
    for (i=0;i<m;++i)
    for (j=0;j<n;++j)
    {
    if (a[i][j]>max) max=a[i][j];//neu trong luc duyet mang ma thay thang nào lớn hơn thì gán thằng đó thành max
    if (a[i][j]<min) min=a[i][j];//tương tự
    }
    //string,in chuỗi đảo ngược, đếm từ;
    string a,b;
    for (i=0;i<a.length();++i)
    b[a.length()-i)=a[i];
    cout<<b;
    //nếu bạn dùng kiểu ký tự thì hàm lấy chiều dài chuỗi là strlen(char *)
    //đếm từ
    int dem;
    for (i=0;i<a.length();++i)
    if (a[i-1]!=char(32))&&(a[i]==char(32)||a[i]=='\0') dem++;
    cout<<dem;
    //việc xóa từ không cụ thể nhưng có hàm xóa từ như erase(char *,int a,int b), a.erase(int a,int b)
    Có thể xem thông tin chi tiết của các hàm này trên trang web sau:
    http://www.cplusplus.com.
    //mang 1 chieu;
    //sắp xếp;
    for (i=0;i<n-1;++i)
    for (j=n-1;j>i;--j)
    if (a[i]>a[i]) HoanVi(a[i],a[j]);//ham HoanVi các bạn tự viết nhá;
    //tong so duong, so chan le
    int tong=0;
    for (i=0;i<n;++i) if (a[i]%2==0) tong+=a[i];
    //tuong tự cho mấy thằng lẻ và dương
    //Số nguyên tố, số chính phương, số hoàn thiện
    bool nguyento=true;
    for (i=2;i<n;++i)//n la so do người dùng nhập
    if (n%i==0) nguyento=false;
    //dể làm số chính phương bạn cần tham khảo hàm làm tròn. Ở đây tôi tạm gọi hàm làm tròn xuống là round() vi tôi quên mất tên hàm rồi hình như là floor thì phải;
    //n do người dùng nhập sẵn, các biến bool các bạn tự khai báo.
    if (sqrt(n)-round(sqrt(n))==0) chinhphuong=true;
    else chinhphuong=false;
    //số hoàn thiện;
    int tong;
    for (i=1;i<n;++i)
    if (n%i==0) tong+=i;
    if (tong==n) shthien=true;
    else shtien=false;

  5. #5
    Tham gia
    25-06-2007
    Bài viết
    10
    Like
    0
    Thanked 0 Times in 0 Posts
    anh mokona nói rất chính xác. mấy bài này đều là những bài rất cơ bản.
    có điều em nghĩ ta nên bắt đầu giải = ngôn ngữ C,vì đây là ngôn ngữ những người mới bắt đầu học lập trình hay học và tại vn thì aptech cũng dạy cho mình bắt đầu từ ngôn ngữ này.)

  6. #6
    Tham gia
    12-04-2007
    Location
    Việt Nam Quê Hương tui
    Bài viết
    241
    Like
    0
    Thanked 0 Times in 0 Posts
    Ngon ngu C thi ban hay chuyen cac lenh nhap xuat cin,cout thanh printf,scanf (tham khao trong các sách) Vấn đề về chuỗi thì bạn hãy dùng kiểu mảng ký tự (char *) nhung minh khuyen hay dung cac bien kiểu string vì như vậy thì nó sẽ ít bị hư dữ liệu hơn.
    VD: Bạn hãy tạo ra một mảng char nam[5]//dung de luu gia tri nam
    sau do tao một mảng char nam1[5] khác và copy toàn bộ dữ liệu của mảng nam[5] sang bạn sẽ thấy như thế nào(dùng cách copy nào thì tùy bạn)

  7. #7
    Tham gia
    07-07-2007
    Bài viết
    1
    Like
    0
    Thanked 0 Times in 0 Posts

    Tệ thật !

    cho trước mảng 1 chiều các số nguyên tố với kích thước MAX=100 phần tử
    viết chương trình cho hiện menu công việc cho phép người dùng lựa chọn thực hiện như sau:
    1. tạo trị ngẫu nhiên ban đầu cho các phần tử mảng trong đoạn [50...150]
    2. xác định phần tử lẻ có giá trị nhỏ nhất
    3. xác định phần tử chẵn có giá trị lớn nhât`
    4. tính tổng tất cả các phần tử có chỉ số lẻ trong mảng
    5.
    tính tổng các phần tử có trong mảng có chỉ số chẵn đồng thời thỏa mãn điều kiện có trị là một số nguyên tố
    bạn có thể giúp mình giải bài toán này
    cám ơn!

  8. #8
    Tham gia
    02-05-2005
    Bài viết
    201
    Like
    0
    Thanked 1 Time in 1 Post
    Các bài tập dạng Tin học đại cương hay kĩ thuật lập trình này các bạn nên tự làm lấy đi. Vì nó giúp cho bạn rèn luyện kĩ năng lập trình, tạo căn bản vững chắc cho các bạn sau này khi đi vào chuyên ngành.

  9. #9
    Tham gia
    12-04-2007
    Location
    Việt Nam Quê Hương tui
    Bài viết
    241
    Like
    0
    Thanked 0 Times in 0 Posts
    1. Tao gia tri ngau nhien trong khoang [50-150]
    dung hàm random: srand(time(NULL));r=rand()%101+50;
    2. xác định phần tử lẻ có giá trị nhỏ nhất.
    Đầu tiên xác định phần tử lẻ đầu tiên (dò qua mảng một lượt) sau đó gán nó bằng min. Rồi quét lại một lượt trong mảng xem coi phần tử nào lẻ thì so sánh với thằng min này tức (a[i]%2==1&&a[i]<min) min=a[i];
    3. Tuơng tự
    4. Đã làm ở phần trên
    5. Chưa hiểu đề

  10. #10
    Tham gia
    19-10-2004
    Bài viết
    236
    Like
    0
    Thanked 1 Time in 1 Post
    Các bài lập trình C cơ bản, mình thấy các bạn sẽ cảm thấy khó khăn nhất trong phần con trỏ và cấp phát bộ nhớ động.
    Mình có 1 loạt slide giáo trình môn học system programming, học trên ngôn ngữ C. Liệu mình có nên dịch ra tiếng Việt hết và đưa lên đây không ?
    Tuy nhiên các sample yêu cầu được biên dịch trên unix hoặc linux thì mới chạy đúng.

Trang 1 / 3 123 LastLast

Bookmarks

Quy định

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