Forum Java Ptit-Aptech

>>>>> www.java13.tk <<<<<
 
Trang ChínhTrang Chính  CalendarCalendar  Trợ giúpTrợ giúp  Tìm kiếmTìm kiếm  Thành viênThành viên  NhómNhóm  Đăng kýĐăng ký  Đăng NhậpĐăng Nhập  
Forum has been closed by admin.

Share | 
 

 co ai giup to bai nay voi!

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
wind_and_cloud_only



Tổng số bài gửi : 18
Points : 28
Reputation : 0
Join date : 10/07/2009

Bài gửiTiêu đề: co ai giup to bai nay voi!   16/7/2009, 4:58 pm

import java.util.Scanner;
public class baitap1

{ Scanner arrayName=new Scanner(System.in);
//**********************Khai Bao Bien**************************
int i,j,n;
int A[]=new int[n];
int total=0;
//**********************NHap N*********************************
void nhap()
{
System.out.print("Nhap n=");
n=arrayName.nextInt();
System.out.println(n);//*******************hien thi size mang
//****************hien thi mang*******************
for(i=0;i<n;i++)
{ System.out.print("nhap phan tu cho mang:");
A[i]=arrayName.nextInt();

http://System.out.printf("=A[%d]"+A[i]);
}
http://System.out.print(A[i]);
}
//*******************Hien thi mANG********************************
//Void dislayMang()

//********************TInH TONG*******************************
void tinhtong()
{
for(i=0;i<=n;i++)
{
total=total+A[i];
}
}
//***********************HIEN THI TONG*********************
void Hienthi_Tong()
{
System.out.println("total=");
System.out.println();
}
//**********************SAP XEP MANG***********************
void sapxep()
{
for(i=0;i<n;i++)
{
for(j=i+1;j<=n;j++)
{
if(A[i]>A[j])
{int tg;
tg=A[i];
A[i]=A[j];
A[j]=tg;
}
}
}
}
//**************************Hien thi mang sap xep***********************
void Hienthi_mang_sapxep()
{
System.out.print("mang da sap xep la:");
System.out.println();
}
public static void main(String[] args)
{
baitap1 x=new baitap1();
x.nhap();
http://x.dislayMang();
x.tinhtong();
x.Hienthi_Tong();
x.Hienthi_mang_sapxep();
}
}

Bài này mình làm ko thấy báo lổi, nhưng chạy thì chỉ cho nhập mổi n, mình muốn tự tay nhập từng phần tử của mảng, nhưng mà ko được, bạn nào giúp hộ với,Thanks nhìu nhìu à!
Về Đầu Trang Go down
Xem lý lịch thành viên
thinhit



Tổng số bài gửi : 27
Points : 39
Reputation : 0
Join date : 10/07/2009

Bài gửiTiêu đề: Re: co ai giup to bai nay voi!   16/7/2009, 7:42 pm

Tớ ko compile chỉ nhận xét 1 số chỗ thôi :
int A[]=new int[n]; // cái này có thể thay bằng :
int A[];
A=new int[n]---> cái này để trong hàm nhập .

Trích dẫn :
void tinhtong()
{
for(i=0;i<=n;i++)
{
total=total+A[i];
}

cái này i<n thôi , ko thì báo lỗi vị trí của mảng vượt khỏi range.
Về Đầu Trang Go down
Xem lý lịch thành viên
wind_and_cloud_only



Tổng số bài gửi : 18
Points : 28
Reputation : 0
Join date : 10/07/2009

Bài gửiTiêu đề: Re: co ai giup to bai nay voi!   16/7/2009, 10:31 pm

cũng không được bạn à? Sad Sad Sad
Về Đầu Trang Go down
Xem lý lịch thành viên
Lee87

avatar

Tổng số bài gửi : 71
Points : 107
Reputation : 5
Join date : 10/07/2009
Age : 30
Đến từ : Hà Nội

Bài gửiTiêu đề: Re: co ai giup to bai nay voi!   16/7/2009, 11:45 pm

wind_and_cloud_only đã viết:
cũng không được bạn à? Sad Sad Sad

Code đầu tiên của bạn nhé: cấp phát cho mảng a sai rùi, vì chưa có n mà đã cấp cho nó trước khi nhập n thì nó không biết tìm thằng n ở đâu.
Theo thói quen viét code của mình thì mình hay tạo ra các hàm có đối vì khỏi cần cấp phát nhiều lần. và hàm tính tổng của bạn nên để ở dạng có giá trị trả về, không nên để hàm void.

Code của mình viết lại từ bài cảu bạn đây:

Code:

import java.util.Scanner;

public class test1{
        // Ham nhap
    void Iput(){
        int[] a;
        int n;
        Scanner iput = new Scanner(System.in);
        System.out.print("\nSo phan tu mang: ");
            n = iput.nextInt();
        a = new int[n];
        for(int i=0; i<n; i++){
            System.out.print("\na["+i+"] = ");
                a[i] = iput.nextInt();
        }
        Display(a,n);       
    }
        // Ham tinh tong cac phan tu mang
    int Sum(int[] a, int n){
        int l = 0;
        for(int i = 0; i<n; i++){
            l += a[i];
        }
        return (l);
    }
        // Ham sap xep cac phan tu theo chieu tang dan
    void sapxep(int[] a, int n){
        int t = 0;
        for(int i = 0; i<n; i++){
            for(int j = i+1; j<n; j++)
                if(a[i]>a[j]){
                    t = a[i];
                    a[i] = a[j];
                    a[j] = t;
                }       
        }
        System.out.print("\nMang sau khi sap xep la: ");
        for(int k = 0; k<n; k++)
            System.out.print(" "+a[k]);
    }
        // Ham hien thi
    void Display(int[] a, int n){
        System.out.print("\nTong cac phan tu: "+Sum(a,n)+"\n\n");
        sapxep(a,n);
    }
        // Ham chinh
    public static void main(String[] args){
        test1 test = new test1();
        test.Iput();
    }
   
}

Chúc bạn học tốt. Very Happy
Về Đầu Trang Go down
Xem lý lịch thành viên
wind_and_cloud_only



Tổng số bài gửi : 18
Points : 28
Reputation : 0
Join date : 10/07/2009

Bài gửiTiêu đề: Re: co ai giup to bai nay voi!   17/7/2009, 1:10 am

u`k cảm ơn Kậu! nhưng mà mình dùng hàm trả về cho total thì nó báo lổi! Nếu mình đặt return trong vòng for thì nó hiện thị tổng =0, mà ngoài thì báo lổi? không hiểu sao?
Đây là code mình sửa lại
Code:
import java.util.Scanner;
public class baitap1

{ Scanner arrayName=new Scanner(System.in);
//**********************Khai Bao Bien**************************
int i,j,n;
int A[]=new int[100];;
int total=0;
//**********************NHap N*********************************
void nhap()
{
System.out.print("Nhap n=");
n=arrayName.nextInt();
System.out.println(n);//*******************hien thi size mang
//****************hien thi mang*******************
for(i=0;i<n;i++)


{ System.out.printf("nhap phan tu cho mang A["+i+"]=");
A[i]=arrayName.nextInt();

http://System.out.printf("=A[%d]"+A[i]);
}
http://System.out.print(A[i]);
}
//*******************Hien thi mANG********************************
//Void dislayMang()

//********************TInH TONG*******************************
int tinhtong(int A[],int n)
{
for(i=0;i<n;i++)
{
total=total+A[i];
}

}return (total);
//*********************HIEN THI TONG*********************
void hienthi()
{for(i=1;i<=n;i++)
   System.out.printf(" tong cua mang A là total=%d\n",+total);
}

//**********************SAP XEP MANG***********************
void sapxep()
{
for(i=0;i<n;i++)
{
for(j=i+1;j<=n;j++)
{
if(A[j]<A[i])
{int tg;
tg=A[j];
A[j]=A[i];
A[i]=tg;
}
}
}
System.out.print("Mang da sap xep la:\n");
    for(i=1;i<=n;i++)

System.out.printf("mang thu %d la %d:\n",i,A[i]);
}
//**************************Hien thi mang sap xep***********************
//void Hienthi_mang_sapxep()
//{System.out.print("Mang da sap xep la:\n");
//    for(i=0;i<=n;i++)

http://System.out.printf("mang thu %d la %d:\n",i,A[i]);
http://System.out.println();
//}
public static void main(String[] args)
{
baitap1 x=new baitap1();
x.nhap();
http://x.dislayMang();
x.hienthi();
http://x.Hienthi_Tong();
x.sapxep();
}
}
Về Đầu Trang Go down
Xem lý lịch thành viên
Lee87

avatar

Tổng số bài gửi : 71
Points : 107
Reputation : 5
Join date : 10/07/2009
Age : 30
Đến từ : Hà Nội

Bài gửiTiêu đề: Re: co ai giup to bai nay voi!   17/7/2009, 8:40 am

wind_and_cloud_only đã viết:
u`k cảm ơn Kậu! nhưng mà mình dùng hàm trả về cho total thì nó báo lổi! Nếu mình đặt return trong vòng for thì nó hiện thị tổng =0, mà ngoài thì báo lổi? không hiểu sao?
Đây là code mình sửa lại
Code:
import java.util.Scanner;
public class baitap1

{ Scanner arrayName=new Scanner(System.in);
//**********************Khai Bao Bien**************************
int i,j,n;
int A[]=new int[100];;
int total=0;
//**********************NHap N*********************************
void nhap()
{
System.out.print("Nhap n=");
n=arrayName.nextInt();
System.out.println(n);//*******************hien thi size mang
//****************hien thi mang*******************
for(i=0;i


{ System.out.printf("nhap phan tu cho mang A["+i+"]=");
A[i]=arrayName.nextInt();

http://System.out.printf("=A[%d]"+A[i]);
}
http://System.out.print(A[i]);
}
//*******************Hien thi mANG********************************
//Void dislayMang()

//********************TInH TONG*******************************
int tinhtong(int A[],int n)
{
for(i=0;i
{
total=total+A[i];
}

}return (total);
//*********************HIEN THI TONG*********************
void hienthi()
{for(i=1;i<=n;i++)
   System.out.printf(" tong cua mang A là total=%d\n",+total);
}

//**********************SAP XEP MANG***********************
void sapxep()
{
for(i=0;i
{
for(j=i+1;j<=n;j++)
{
if(A[j]
{int tg;
tg=A[j];
A[j]=A[i];
A[i]=tg;
}
}
}
System.out.print("Mang da sap xep la:\n");
    for(i=1;i<=n;i++)

System.out.printf("mang thu %d la %d:\n",i,A[i]);
}
//**************************Hien thi mang sap xep***********************
//void Hienthi_mang_sapxep()
//{System.out.print("Mang da sap xep la:\n");
//    for(i=0;i<=n;i++)

http://System.out.printf("mang thu %d la %d:\n",i,A[i]);
http://System.out.println();
//}
public static void main(String[] args)
{
baitap1 x=new baitap1();
x.nhap();
http://x.dislayMang();
x.hienthi();
http://x.Hienthi_Tong();
x.sapxep();
}
}
Code bạn sai ở chỗ:
1.Return sai địa điểm.
2.Khi khai báo mảng a và biến n toàn cục rồi thì khỏi cần đối ở hàm tổng, không cần thiết nữa. bạn chỉ cần sửa hàm tính tổng không trả về đối là ok.
3.Hàm hiển thị phải gọi tới hàm tinhtong() chứ không phải là biến total. vì total của bạn khai báo toàn cục và gán cho nó là 0.
Mình sửa lại với cái code bạn vừa sửa:

Code:

Code:

import java.util.Scanner;
public class baitap1

{ Scanner arrayName=new Scanner(System.in);
//**********************Khai Bao Bien**************************
int i,j,n;
int A[]=new int[100];;
int total=0;
//**********************NHap N*********************************
void nhap()
{
System.out.print("Nhap n=");
n=arrayName.nextInt();
System.out.println(n);//*******************hien thi size mang
//****************hien thi mang*******************
for(i=0;i<n;i++)


{ System.out.printf("nhap phan tu cho mang A["+i+"]=");
A[i]=arrayName.nextInt();

http://System.out.printf("=A[%d]"+A[i]);
}
http://System.out.print(A[i]);
}
//*******************Hien thi mANG********************************
//Void dislayMang()

//********************TInH TONG*******************************
int tinhtong()
{
for(i=0;i<n;i++)
{
total=total+A[i];
}
return (total);
}
//*********************HIEN THI TONG*********************
void hienthi()
{for(i=1;i<=n;i++)
  System.out.printf(" tong cua mang A là total=%d\n",+tinhtong());
}

//**********************SAP XEP MANG***********************
void sapxep()
{
for(i=0;i<n;i++)
{
for(j=i+1;j<=n;j++)
{
if(A[j]<A[i])
{int tg;
tg=A[j];
A[j]=A[i];
A[i]=tg;
}
}
}
System.out.print("Mang da sap xep la:\n");
    for(i=1;i<=n;i++)

System.out.printf("  %d",A[i]);
}
//**************************Hien thi mang sap xep***********************
//void Hienthi_mang_sapxep()
//{System.out.print("Mang da sap xep la:\n");
//    for(i=0;i<=n;i++)

http://System.out.printf("  %d",A[i]);
http://System.out.println();
//}
public static void main(String[] args)
{
baitap1 x=new baitap1();
x.nhap();
http://x.dislayMang();
x.hienthi();
http://x.Hienthi_Tong();
x.sapxep();
}
}
Về Đầu Trang Go down
Xem lý lịch thành viên
wind_and_cloud_only



Tổng số bài gửi : 18
Points : 28
Reputation : 0
Join date : 10/07/2009

Bài gửiTiêu đề: Re: co ai giup to bai nay voi!   17/7/2009, 9:30 am

Thank nhéVery Happy!
Về Đầu Trang Go down
Xem lý lịch thành viên
Sponsored content




Bài gửiTiêu đề: Re: co ai giup to bai nay voi!   

Về Đầu Trang Go down
 
co ai giup to bai nay voi!
Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang
 Similar topics
-
» ai giup minh lam nv Do a shadow arenna ko !!!

Permissions in this forum:Bạn không có quyền trả lời bài viết
Forum Java Ptit-Aptech :: THẢO LUẬN VỀ JAVA :: ARRAY-STRING-CLASS-
Chuyển đến 
Free forum | © phpBB | Free forum support | Report an abuse | Create your own blog