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

Đề tài: bài tập về tìm giá trị lớn nhất và nhỏ nhất

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

    Angry bài tập về tìm giá trị lớn nhất và nhỏ nhất

    mình muốn tìm giá trị lớn nhất của một dãy số sử dụng con trỏ thì mình phải gán giá trị kiểu gì?

  2. #2
    Ngày gia nhập
    04 2008
    Bài viết
    0

    dùng con trỏ à ?
    Tớ tui làm thế này đúng ko nhá ?
    Tui dùng mang 1 chiều và con trỏ :
    p=a;
    max=*p;
    Trong đó p là một con trỏ, a là 1 mang và max
    Tui lam theo cach này có đùng ko,xem thử sao :
    Code:
    #include <stdio.h>
    #include <conio.h>
    
    void main(void)
    {
    	int a[30],*b,n,i,max;
    	//nhap mang
    	printf("So ptu ? ");
    	scanf("%d",&n);
    	for (i=0;i<n;i++)
    		{
    		printf("Nhap vao ptu thu %d ",i+1);
                    scanf("%d",&a[i]);
    		}
    	//in mang vua nhap
            printf("\n-----------------------\nMang vua nhap\n");
    	for (i=0;i<n;i++)
    		printf("%d ",a[i]);
    	//in ptu lon nhat
    	b=a; //con tro b tro den phan tu dau cua a
    	max=*b; //khoi tao max tu ptu dau mang a
    	for (i=0;i<n;i++,b++)
    		if (max<*(b)) max=*b;
    	printf("\n\n\tPtu lon nhat la : %d",max);
    	getch();
    }
    Tui mới học về cái này nên mong mọi người chỉ giáo !!!!!!!!!!!!!!

  3. #3
    Ngày gia nhập
    04 2008
    Bài viết
    0

    tui làm cả băng mảng 2 chiều bài này, mọi người xem có gì góp ý cho nhé
    Code:
    /*
    #include <stdio.h>
    #include <conio.h>
    
    void main(void)
    {
    	int a[10][10],*b;
    	int i,j,x,y,max;
    	//nhap mang
    	b=&a[0][0];
    	printf("Nhap kich thuoc mang\n");
    	printf("So hang ? "); scanf("%d",&x);
    	printf("So cot ? "); scanf("%d",&y);
    	for (i=0;i<x;i++)
    	for (j=0;j<y;j++)
    		{
    		printf("Nhap a[%d,%d] : ",i,j);
    		scanf("%d",b+i*y+j);
    		}
    	//in mang vua nhap
    	for (i=0;i<x;i++)
    		{
                    printf("\n");
    		for (j=0;j<y;j++)
    		printf("%5d ",*(b+i*y+j));
    		}
    	//tim max
    	max=*b;
           	for(i=0;i<x;i++)
    	for(j=0;j<y;j++)
    	   if (max<(*(b+i*y+j)))
    		max=*(b+i*y+j);
    	printf("\n\n\tPhan tu lon nhat la : %d",max);
    	getch();
    }

  4. #4
    No Avatar
    becauseofyoublue Khách

    bài bạn làm như thế không ổn
    bạn dùng con trỏ mà không cấp phát vùng nhớ cho nó thì nó lưu dwx liệu ở đâu.
    mình xin sửa lại bài như thế này

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3.  
    4. void main(void)
    5. {
    6. int *a,n,max;
    7. //nhap mang
    8. printf("So ptu ? ");
    9. scanf("%d",&n);
    10. for (int i=0;i<n;i++)
    11. {
    12. printf("Nhap vao ptu thu %d:",i+1);
    13. scanf("%d",(a+i));
    14. }
    15. //in mang vua nhap
    16. printf("\n-----------------------\nMang vua nhap\n");
    17. for (i=0;i<n;i++)
    18. printf("%3d ",*(a+i));
    19. //in ptu lon nhat
    20. max=*a; //khoi tao max tu ptu dau mang a
    21. for (i=1;i<n;i++)
    22. if (max<*(a+i)) max=*(a+i);
    23. printf("\n\n\tPtu lon nhat la : %3d",max);
    24. getch();
    25. }

    Đối với mảng hai chiều thì bạn làm tương tự
    bạn thao tác trên mảng hai chiều như thao tác trên mảng một chiều
    hoặc sử dụng công thức đổi từ mảng hai chiều sang mảng một chiều là
    A[row][col] ---> A[chỉ số hàng * số cột + chỉ số cột];

    Lưu ý: Để code vào tag code. Đọc Nội quy để biết thêm chi tiết

  5. #5
    No Avatar
    becauseofyoublue Khách

    hihi chỗ trên tui nói hơi lộn một chút
    bạn dùng mảng tĩnh nên đúng
    nếu mảng có thành phần dữ liệu động thì bạn cần cấp phát vùng nhớ cho nó

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

    Mặc định bài tập về tìm giá trị lớn nhất và nhỏ nhất

    mình muốn tìm giá trị lớn nhất của một dãy số sử dụng con trỏ thì mình phải gán giá trị kiểu gì?
    Solution :
    C++ Code:
    1. #include <algorithm>
    2. #include <iostream>
    3.  
    4. int find_min( int const *ary, int n )
    5. {
    6.     return n-- ? std::min( *ary, find_min( ary + 1, n ) ) : INT_MAX;
    7. }
    8.  
    9. int find_max( int const *ary, int n )
    10. {
    11.     return n-- ? std::max( *ary, find_max( ary + 1, n ) ) : -INT_MAX;
    12. }
    13.  
    14. int main()
    15. {
    16.     int ary[ 6 ] = { 1, 2, 3, 4, 5, 6 };
    17.  
    18.     std::cout << find_min( ary, 6 ) << "\n";
    19.     std::cout << find_max( ary, 6 ) << "\n";
    20.  
    21.     return 0;
    22. }

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

  1. Sửa máy tính, cài đặt windows, phần mềm tại nhà nhanh nhất, rẻ nhất, hiệu quả nhất …
    Gửi bởi hopluccc 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: 08-07-2013, 02:07 PM
  2. Trả lời: 12
    Bài viết cuối: 25-10-2012, 02:48 AM
  3. Bài tập C++ NHập mảng một chiều gồm n phần tử kết thúc nhập khi nhập một chữ cái
    Gửi bởi thienthanoze trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 15
    Bài viết cuối: 09-07-2012, 10:10 PM
  4. Bài tập C++ Viết phương trình nhập vào 1 chuỗi số.Hãy nhập vào 1 số.Đếm xem có bao nhiêu chữ số bạn vừa nhập
    Gửi bởi namtuocdn trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 16-10-2011, 10:39 AM
  5. Bài tập C++ Nhập mảng 1 chiều, nếu phần tử nhập trùng nhau thì bắt nhập lại
    Gửi bởi danielh trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 09-07-2011, 03:35 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