Kết quả 1 đến 7 của 7
  1. #1
    Ngày tham gia
    Nov 2015
    Bài viết
    0

    Giúp làm bài tập lập trình C về chuỗi

    em có code này
    làm sao để gọi hàm khoi_tao trong hàm in_xuoi mà vẫn có thể giữ lại dữ liệu các biến trong hàm khoi_tao
    xin các bác giúp đỡ em khai báo mấy cái biến còn thiếu trong code đó luôn, e cam on nhieu =)

    Mã nguồn PHP:
    #include <stdio.h>#include <conio.h> void khoi_tao (void){ int i;do{printf("so phan tu cua mang n= ");scanf("%d",&n);}while (n<=0);for (i=1;i<=n;i++){printf("a[%d]= ",i);scanf("%f",&a[i]);} }void in_xuoi (void){int i;khoi_tao();for (i=1; i<=n; i++) printf("a[%d]= %f",i,a[i]);}void main (void){ in_xuoi();getch();}  

  2. #2
    Ngày tham gia
    Nov 2015
    Bài viết
    4
    Đề bài của em là gì [IMG]images/icons/1.gif[/IMG]
    Code em sai tùm lum [IMG]images/icons/1.gif[/IMG]

  3. #3
    Ngày tham gia
    Dec 2015
    Bài viết
    9
    Bạn tham khảo nhé

    Mã:
    #include<stdio.h>#include<stdlib.h>
    int n = 0;
    bool check = false;
    int Chon_Menu();
    //- Hàm Khoi_tao cho phép nh?p vào m?t m?ng g?m n ph?n t? s? nguyên
    void Khoi_Tao(int a[]);
    //- Hàm In_xuôi và hàm In_nguoc cho phép in m?ng ra màn hình theo th? t? xuôi và ngu?c
    void In_xuoi(int a[]);
    void In_nguoc(int a[]);
    //- Hàm Tim_max và hàm Tim_min d? tìm giá tr? nh? nh?t và l?n nh?t c?a m?ng
    int Tim_max(int a[]);
    int Tim_min(int a[]);
    //- Hàm Tinh_tong cho phép Tính t?ng các giá tr? trong m?ng
    int Tinh_tong(int a[]);
    //- Hàm Tinh_tong_duong và hàm Tinh_tong_am cho phép tính t?ng các ph?n t? có giá tr? duong và âm trong m?ng
    int Tinh_tong_duong(int a[]);
    int Tinh_tong_am(int a[]);
    //- Hàm Sap_xep_tang và hàm Sap_xep_giam d? s?p x?p m?ng theo th? t? tang d?n và gi?m d?n
    void Sap_xep_tang(int a[]);
    void Sap_Xep_giam(int a[]);
    int main()
    {
    	printf("Nhap vao so phan tu cua mang: ");
    	scanf("%d",&n);
    	while(n < 1)
    	{
    		system("cls");
    		printf("so phan tu phai lon hon 0, nhap lai ");
    		scanf("%d",&n);
    	}
    	int a[n];
    	int chon = 0;
    	while(1)
    	{
    		chon = Chon_Menu();
    		if(chon != 1 && check == false)
    		{
    			printf("Chua khoi tao mang
    ");
    			continue;
    		}
    		switch(chon)
    		{
    			case 1:
    				Khoi_Tao(a);
    				break;
    			case 2:
    				In_xuoi(a);
    				break;
    			case 3:
    				In_nguoc(a);
    				break;
    			case 4:
    				printf("%d",Tim_max(a));
    				break;
    			case 5:
    				printf("%d",Tim_min(a));
    				break;
    			case 6:
    				printf("%d",Tinh_tong(a));
    				break;
    			case 7:
    				printf("%d",Tinh_tong_duong(a));
    				break;
    			case 8:
    				printf("%d",Tinh_tong_am(a));
    				break;
    			case 9:
    				Sap_xep_tang(a);
    				break;
    			case 10:
    				Sap_Xep_giam(a);
    				break;
    			case 11:
    				return 1;
    				break;
    			default:
    				printf("chon sai
    ");
    				break;
    			
    		}
    	}
    }
    int Chon_Menu()
    {
    	printf("1: Khoi tao mang
    ");
    	printf("2: In mang ra man hinh
    ");
    	printf("3: In mang dao nguoc ra man hinh
    ");
    	printf("4: Tim gia tri max cua mang
    ");
    	printf("5: Tim gia tri min cua mang
    ");
    	printf("6: Tinh tong
    ");
    	printf("7: Tinh tong cac phan tu duong
    ");
    	printf("8: Tinh tong cac phan tu am
    ");
    	printf("9: Sap xep tang dan
    ");
    	printf("10 Sap xep giam dan
    ");
    	printf("11: Thoat
    ");
    	printf("Moi ban chon so tuong ung: ");
    	int temp = 0;
    	scanf("%d",&temp);
    	return temp;
    }
    void Khoi_Tao(int a[])
    {
    	for(int i = 0 ; i < n ; i ++)
    	{
    		printf("a[%d] = ",i);
    		scanf("%d",&a[i]);
    	}
    	check = true;
    }
    void In_xuoi(int a[])
    {
    	for(int i = 0 ; i < n ; i ++)
    	{
    		printf("%d ",a[i]);
    	}
    }
    
    
    void In_nguoc(int a[])
    {
    	for(int i = n-1; i >= 0 ; i--)
    	{
    		printf("%d ",a[i]);
    	}
    }
    int Tim_max(int a[])
    {
    	int max = a[0];
    	for(int i = 1 ; i < n ; i ++)
    	{
    		if(max < a[i])
    			max = a[i];
    	}
    	return max;
    }
    int Tim_min(int a[])
    {
    	
    	int min = a[0];
    	for(int i = 1 ; i < n ; i ++)
    	{
    		if(min > a[i])
    			min = a[i];
    	}
    	return min;
    }
    int Tinh_tong(int a[])
    {
    	
    	int s = 0;
    	for(int i = 0 ; i < n ; i ++)
    	{
    		s+=a[i];
    	}
    	return s;
    }
    int Tinh_tong_duong(int a[])
    {
    	int s = 0;
    	for(int i = 0 ; i < n ; i ++)
    	{
    		if(a[i] > 0)
    			s+=a[i];
    	}
    	return s;
    }
    int Tinh_tong_am(int a[])
    {
    	int s = 0;
    	for(int i = 0 ; i < n ; i ++)
    	{
    		if(a[i] < 0)
    			s+=a[i];
    	}
    	return s;
    }
    void Sap_xep_tang(int a[])
    {
    
    
    	for(int i = 0 ; i < n-1 ; i ++)
    	{
    		for(int j = i+1 ; j < n ; j ++)
    			if(a[i] > a[j])
    			{
    				int temp = a[i];
    				a[i] = a[j];
    				a[j] = temp;
    			}
    	}
    }
    void Sap_Xep_giam(int a[])
    {
    	for(int i = 0 ; i < n-1 ; i ++)
    	{
    		for(int j = i+1 ; j < n ; j ++)
    			if(a[i] < a[j])
    			{
    				int temp = a[i];
    				a[i] = a[j];
    				a[j] = temp;
    			}
    	}
    }

  4. #4
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Trích dẫn Gửi bởi Suu Programer
    Đề bài của em là gì [IMG]images/icons/1.gif[/IMG]
    Code em sai tùm lum [IMG]images/icons/1.gif[/IMG]
    nó sai là phải roi. tại e chưa khai báo gì cho nó hết ^^
    đề của e nè anh
    Xây dựng các hàm để thực hiện các công việc sau
    - Hàm Khoi_tao cho phép nhập vào một mảng gồm n phần tử số nguyên
    - Hàm In_xuôi và hàm In_nguoc cho phép in mảng ra màn hình theo thứ tự xuôi và ngược
    - Hàm Tim_max và hàm Tim_min để tìm giá trị nhỏ nhất và lớn nhất của mảng
    - Hàm Tinh_tong cho phép Tính tổng các giá trị trong mảng
    - Hàm Tinh_tong_duong và hàm Tinh_tong_am cho phép tính tổng các phần tử có giá trị dương và âm trong mảng
    - Hàm Sap_xep_tang và hàm Sap_xep_giam để sắp xếp mảng theo thứ tự tăng dần và giảm dần
    - Xây dựng chương trình chính gồm 1 menu như sau:
    ----------------------------------------------------
    MENU CHUONG TRINH
    ---------------------------------------------------
    1: Khoi tao mang
    2: In mang ra man hinh
    3: In mang dao nguoc ra man hinh
    4: Tim gia tri max cua mang
    5: Tim gia tri min cua mang
    6: Tinh tong
    7: Tinh tong cac phan tu duong
    8: Tinh tong cac phan tu am
    9: Sap xep tang dan
    10 Sap xep giam dan
    11: Thoat
    Moi ban chon so tuong ung:
    Khi người sử dụng chọn 1 số tương ứng của mục tương ứng của menu thì gọi đến hàm tương ứng đó để thực hiện

  5. #5
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Trích dẫn Gửi bởi Suu Programer
    Đề bài của em là gì [IMG]images/icons/1.gif[/IMG]
    Code em sai tùm lum [IMG]images/icons/1.gif[/IMG]
    [IMG]images/smilies/troll2/gian.gif[/IMG] sai vậy em đưa ra chỗ sai và sửa lại đi, sao làm sao, sai chỗ nào? [IMG]images/smilies/troll2/botay.png[/IMG]

  6. #6
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Hàm sắp xếp anh sẽ gợi ý [IMG]images/icons/1.gif[/IMG]
    Em xem trước cái này nhé [IMG]images/icons/1.gif[/IMG]
    Mã nguồn PHP:
    #include<stdio.h>#include<conio.h>#define max 100void khoi_tao(int a[],int n){ for (int i=1;i<n+1;++i){ printf("Nhap phan tu a[%d] \t",i); scanf("%d",&a[i]); } printf("
    ");}void in_xuoi(int a[],int n){ for (int i=1;i<n+1;i++){ printf("%d ",a[i]); } printf("
    ");}void in_nguoc(int a[],int n){ for (int i=n;i>0;i--){ printf("
    %d ",a[i]); } printf("
    ");}void tim_max(int a[],int n){ int GTMAX=0; for(int i=1;i<n+1;++i){ if (GTMAX<a[i]) GTMAX=a[i]; } printf("
    %d",GTMAX); printf("
    ");}void tim_min(int a[],int n){ int GTMIN=a[1]; for (int i=1;i<n+1;++i){ if (GTMIN>a[i]) GTMIN=a[i]; } printf("
    %d",GTMIN); printf("
    ");}void tinh_tong(int a[],int n){ int Tong=0; for (int i=1;i<n+1;++i) Tong = Tong +a[i]; printf("
    %d",Tong); printf("
    ");}void tinh_tong_duong(int a[],int n){ int Tongduong=0; for (int i=1;i<n+1;++i){ if (a[i]>0) Tongduong=Tongduong+a[i]; } printf("
    %d",Tongduong); printf("
    ");}void tinh_tong_am(int a[],int n){ int Tongam=0; for (int i=1;i<n+1;++i){ if (a[i]<0) Tongam=Tongam+a[i]; } printf("
    %d",Tongam); printf("
    ");}int main(){ int a[max],n; printf("
    Nhap so phan tu
    "); scanf("%d",&n); khoi_tao(a,n); printf("Sau khi in xuoi
    "); in_xuoi(a,n); printf("Sau khi in nguoc
    "); in_nguoc(a,n); printf("Gia tri lon nhat la
    "); tim_max(a,n); printf("Gia tri nho nhat la
    "); tim_min(a,n); printf("Tong day la
    "); tinh_tong(a,n); printf("Tong duong la
    "); tinh_tong_duong(a,n); printf("Tong am la
    "); tinh_tong_am(a,n); getch();}  

  7. #7
    Ngày tham gia
    Dec 2015
    Bài viết
    217
    Bạn có thể khai báo biến phía ngoài, nhưng trong trường hợp này thì không cần. Khi tạo hàm khởi tạo bạn có thể return 1 mảng để dùng trong hàm in

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • 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
  •  
Múi giờ GMT +7. Bây giờ là 04:04 PM.
Diễn đàn sử dụng vBulletin® Phiên bản 4.2.5.
Bản quyền của 2025 vBulletin Solutions, Inc. Tất cả quyền được bảo lưu.
Ban quản trị không chịu trách nhiệm về nội dung do thành viên đăng.