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

Đề tài: Tìm và in ra 2 số thuộc 2 mảng có tổng bằng 1 số bất kỳ nhập vào

  1. #1
    Ngày gia nhập
    02 2012
    Bài viết
    1

    Unhappy Tìm và in ra 2 số thuộc 2 mảng có tổng bằng 1 số bất kỳ nhập vào

    Thầy giáo mình giao cho mình một bài tập như sau: hãy nhập vào 2 mảng cùng số phần tử, và nhập vào một số k, sau đó tìm và in ra (xi,yi) thuộc 2 mảng trên sao cho k = xi+yi.
    mình có làm , nhưng khi chạy Ct In ra kết quả thì bị treo, phải gõ 1 phím bất kỳ thì mới cho ra kết quả.
    đây là code mình làm:
    mọi người xem sửa giúp mình với:

    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. #define MAX 100
    4. void  nhap(int *n)
    5.  {     printf("\nN=");
    6.        scanf("%d",n);
    7.  }
    8. void nhapmang(int *p, int n)
    9. {
    10.      for(int i=1; i<=n; i++)
    11.       {
    12.      printf("\n Phan tu thu [%d]:",i);
    13.      scanf("%d",&p[i]);
    14.       }
    15. }
    16. void hienthi(int *p, int n)
    17. {
    18.       for(int i=1; i<=n; i++)
    19.      printf("%2d,",p[i]);
    20. }
    21. void main()
    22. { int n,x[MAX],y[MAX],k,i,j;
    23.   clrscr();
    24.   nhap(&n);
    25.   printf("\n Nhap mang X");
    26.   nhapmang(x,n);
    27.   hienthi(x,n);
    28.   printf("\n Nhap mang Y:");
    29.   nhapmang(y,n);
    30.   hienthi(y,n);
    31.   printf("\n Nhap vao so K: ");
    32.   scanf("\n %d ", &k);
    33.   printf("\n Nhung phan tu co tong gia tri bang k la:");
    34.  
    35.   for (i=1;i<=n;i++)
    36.    for(j=1;j<=n;j++)
    37.    {
    38.    if((x[i]+y[j])==k)
    39.     printf("\n (%d, %d)",x[i],y[j]);
    40.    }
    41.   getch();
    42. }
    Đã được chỉnh sửa lần cuối bởi kitti : 02-05-2012 lúc 02:57 PM. Lý do: đưa code vào tag code

  2. #2
    Ngày gia nhập
    05 2010
    Bài viết
    29

    C Code:
    1. for(int i=1; i<=n; i++)

    - Lần sau bạn bỏ vào thẻ Code=C nhé

    - Các phần tử của mảng 1 chiều được đánh số thứ tự từ: a[0], a[1], a[2]....a[n-1]

  3. #3
    Ngày gia nhập
    05 2012
    Nơi ở
    Thanh Hóa
    Bài viết
    3

    Mặc định Tìm và in ra 2 số thuộc 2 mảng có tổng bằng 1 số bất kỳ nhập vào

    Ở chỗ cho nhập k, câu lệnh scanf của bạn bị lỗi:
    scanf("\n %d ", &k);
    khi mình sửa lại như thế này thì ct chạy được bình thường:
    scanf("%d",&k);
    Mình cũng mới học c thôi nên chưa hiểu rõ lắm về những cái này. Nhưng mình nhớ là cú pháp của hàm scanf khi chỉ nhập giá trị cho một biến thì không có "\n" và " ".

  4. #4
    Ngày gia nhập
    03 2012
    Bài viết
    27

    C++ Code:
    1. #include <iostream>
    2.  
    3. using namespace std;
    4.  
    5. #define MAX 100
    6.  
    7. void nhapmang(int *p, int n)
    8. {
    9.      for(int i=0; i<n; i++)
    10.      {
    11.          cout<<"Nhap phan tu thu "<<i+1<<":";
    12.          cin>>p[i];
    13.      }
    14. }
    15. int main()
    16. {
    17.     int n,x[MAX],y[MAX],k,i,j;
    18.    
    19.     cout<<"Nhap so phan tu cua 2 mang:";
    20.     cin>>n;
    21.     cout<<endl<<"Mang A:"<<endl;
    22.     nhapmang(x,n);
    23.     cout<<endl<<"Mang B:"<<endl;
    24.     nhapmang(y,n);
    25.  
    26.     cout<<endl<<"Nhap so can kiem tra:";
    27.     cin>>k;
    28.     for (i=0;i<n;i++)
    29.         for(j=0;j<n;j++)
    30.         {
    31.             if((x[i]+y[j])==k)
    32.             printf("\n (%d, %d)",x[i],y[j]);
    33.         }
    34.     cout<<endl;
    35.     system("pause");
    36.     return 0;
    37. }

  5. #5
    Ngày gia nhập
    08 2011
    Bài viết
    98

    Về câu hỏi của bạn,vấn đề nằm ở chỗ scanf biến k,trong format string của hàm scanf của bạn có khoảng trắng,nó làm cho hàm scanf không return được khi gõ enter.Đến khi bạn nhập một kí tự khác với số,lúc đó nó mới xem như kết thúc format %d và đưa giá trị số vào k,ký tự bạn bấm vào nó vẫn đưa vào bộ đệm tuy nhiên không được đưa vào k.

    Ví dụ bạn nhập k là

    3io4 => k = 3
    4p => k = 4

    Tóm lại,bạn chỉ cần bỏ khoảng trắng sau %d đi là được.Code sẽ thành

    C Code:
    1.   if(!scanf("\n %d", &k)){
    2.     return;
    3.   }
    Nghe Metal và dịch thơ
    lttqstudy.wordpress.com

  6. #6
    Ngày gia nhập
    09 2011
    Nơi ở
    Đắk Lắk
    Bài viết
    5

    Post mình viết bằng c++ nha

    #include<iostream.h>
    #include<conio.h>
    #include<math.h>
    void nhapn(int &n)
    {
    cout<<"nhap so luong phan tu cau mang:";cin>>n;
    }
    void nhap(int a[],int b[],int n)
    {
    cout<<"\n nhap mang thu nhat:\n";
    for(int i=0;i<n;i++)
    {
    cout<<"a["<<i<<"]=";
    cin>>a[i];
    }
    cout<<"\n nhap mang thu 2:\n";
    for(int j=0;j<n;j++)
    {
    cout<<"b["<<j<<"]=";
    cin>>b[j];
    }
    }
    void nhaps(int &d)
    {
    cout<<"\n nhap so:";cin>>d;
    }
    void kiemtra(int a[],int b[],int n,int d)
    {
    for(int i=0;i<n;i++)
    {for(int j=0;j<n;j++)
    {
    if(d==a[i]+a[j])
    cout<<"a["<<i<<"] va b["<<j<<"]\n";
    }
    }
    }
    int main()
    {int a[100],b[100];
    int n,d;
    nhapn(n);
    nhap(a,b,n);
    nhaps(d);
    kiemtra(a,b,n,d);
    getch();
    }
    Attached Files Attached Files

  7. #7
    Ngày gia nhập
    09 2011
    Nơi ở
    Đắk Lắk
    Bài viết
    5

    Trích dẫn Nguyên bản được gửi bởi thanhnhuk10 Xem bài viết
    #include<iostream.h>
    #include<conio.h>
    #include<math.h>
    void nhapn(int &n)
    {
    cout<<"nhap so luong phan tu cau mang:";cin>>n;
    }
    void nhap(int a[],int b[],int n)
    {
    cout<<"\n nhap mang thu nhat:\n";
    for(int i=0;i<n;i++)
    {
    cout<<"a["<<i<<"]=";
    cin>>a[i];
    }
    cout<<"\n nhap mang thu 2:\n";
    for(int j=0;j<n;j++)
    {
    cout<<"b["<<j<<"]=";
    cin>>b[j];
    }
    }
    void nhaps(int &d)
    {
    cout<<"\n nhap so:";cin>>d;
    }
    void kiemtra(int a[],int b[],int n,int d)
    {
    for(int i=0;i<n;i++)
    {for(int j=0;j<n;j++)
    {
    if(d==a[i]+a[j])
    cout<<"a["<<i<<"] va b["<<j<<"]\n";
    }
    }
    }
    int main()
    {int a[100],b[100];
    int n,d;
    nhapn(n);
    nhap(a,b,n);
    nhaps(d);
    kiemtra(a,b,n,d);
    getch();
    }
    có j bạn cứ pm qua cho minh qua mail:thanhnhuk10@yahoo.com.vn

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

  1. Bán vé máy bay rẻ nhất buôn ma thuột 0947191177
    Gửi bởi dulichdaklak235 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-01-2013, 11:24 AM
  2. Bán vé máy bay rẻ nhất buôn ma thuột 0947191177
    Gửi bởi dulichdaklak235 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: 20-12-2012, 02:46 PM
  3. Bán vé máy bay tết giá rẻ nhất Buôn Ma Thuột 0947 19 11 77
    Gửi bởi dulichdaklak235 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: 13-11-2012, 07:33 AM
  4. Bán vé máy bay tết giá rẻ nhất Buôn Ma Thuột 0947 19 11 77Bán vé máy bay tết giá rẻ nhất Buôn Ma Thuột 0947 19 11 77
    Gửi bởi dulichdaklak235 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: 23-10-2012, 08:33 AM

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