Windows Việt

Cộng Đồng Công Nghệ Thông Tin Việt

Trang ChínhTrang Chính  Sự kiện  Tìm kiếmTìm kiếm  Đăng kýĐăng ký  Đăng NhậpĐăng Nhập  

Share
 
 KTLT Câu 2 Đề II
Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
nhinhip
Member

nhinhip
Member
Giới tính : Nam
Tuổi : 29
Posts Posts : 68
Coins Coins : 110
Thanked Thanked : 7
KTLT Câu 2 Đề II Empty
Bài gửiTiêu đề: KTLT Câu 2 Đề II   KTLT Câu 2 Đề II EmptyThu 24 Dec 2009, 03:22

Code:

#include "stdio.h"
#include "conio.h"
void Nhap(int **&p, int &n)
{
printf("Nhap Chi So N Ma Tran Vuong: ");
scanf("%d",&n);
p= new int*[n];
for(int i=0;i<n;i++){
p[i] = new int[n];
}
for(i=0;i for(int j=0;j printf("p[%d][%d]: ",i,j);
scanf("%d",&p[i][j]);
}
}
}
int TongDuongCheoMaTran( int **p,int i,int n)
{
int sum=0;
int d=i,c=0;
while(d>=0&&c<=n)
{
sum+=*(*(p+d)+c);
d--;
c++;
}
return sum;
}
void XuatFile(int **p, int n)
{
int sum=0;
int Indexmax=p[0][0];
FILE *f = fopen("d:\\output.txt","wt");
if(f==NULL)
{
printf("Khong Ghi Ket Qua Len Duoc Tap Tin.");
return ;
}
fprintf(f,"%d:\n",n);
fprintf(f,"Ma Tran Ban Dau:\n");
for(int i=0;i {
for(int j=0;j fprintf(f,"%4d",*(*(p+i)+j));
fprintf(f,"\n");
}
int lc=0;
for(i = 0; i < n; i++ )
{
sum = TongDuongCheoMaTran( p,i,n );
if( Indexmax <= sum )
{
Indexmax = sum;
lc=i;

}
}
printf("Tong Lon Nhat %d \n",Indexmax);
fprintf(f,"Tong Lon Nhat %d\n ",Indexmax);
int d=lc;
int c=0;
while(d>=0&&c<=n)
{
fprintf(f,"%4d",*(*(p+d)+c));
d--;
c++;
}
fprintf(f,"\n");

}
int main()
{
int **p,n;
Nhap(p,n);
for(int i=0;i for(int j=0;j printf("%4d",p[i][j]);
}
printf("\n");
}
XuatFile(p,n);
for( i = 0;i {
delete []p[i];
}
delete []p;
getch();
return 0;
}

※ Bài viết cùng chuyên mục


Tác giảThông điệp
Toend2008
Member

Toend2008
Member
Giới tính : Nam
Tuổi : 21
Posts Posts : 377
Coins Coins : 564
Thanked Thanked : 33
KTLT Câu 2 Đề II Empty
Bài gửiTiêu đề: Re: KTLT Câu 2 Đề II   KTLT Câu 2 Đề II EmptyThu 24 Dec 2009, 07:21

Bài Này Hình Như Sai Chỗ Nào Rồi Nhí:
Vd:

3 8 1
7 3 2
1 21 8
Tổng Lớn Nhất: 23
Đường chéo : 2 21
Kết quả code trên vẫn ra 15 với đường chéo 7,8.
Ai làm được bài này giải hộ cho anh em xem khảo nhé.! Giáng sinh an lành.

※ Bài viết cùng chuyên mục


Tác giảThông điệp
nhinhip
Member

nhinhip
Member
Giới tính : Nam
Tuổi : 29
Posts Posts : 68
Coins Coins : 110
Thanked Thanked : 7
KTLT Câu 2 Đề II Empty
Bài gửiTiêu đề: Re: KTLT Câu 2 Đề II   KTLT Câu 2 Đề II EmptyThu 24 Dec 2009, 10:28

Code:

#include "stdio.h"
#include "conio.h"
void Nhap(int **&p, int &n)
{
printf("Nhap Chi So N Ma Tran Vuong: ");
scanf("%d",&n);
p= new int*[n];
for(int i=0;i<n;i++){
p[i] = new int[n];
}
for(i=0;i for(int j=0;j printf("p[%d][%d]: ",i,j);
scanf("%d",&p[i][j]);
}
}
}
int TongDuongCheoMaTran( int **p,int i,int n,int j)
{
int sum=0;
int d=i,c=0;
if(i==n-1)
{
c=j;
while(d>=j&&c<n)
{
sum+=*(*(p+d)+c);
d--;
c++;
}
return sum;
}
while(d>=0&&c<n)
{
sum+=*(*(p+d)+c);
d--;
c++;
}

return sum;
}
void XuatFile(int **p, int n)
{
int sum=0;
int Indexmax=p[0][0];
FILE *f = fopen("d:\\output.txt","wt");
if(f==NULL)
{
printf("Khong Ghi Ket Qua Len Duoc Tap Tin.");
return ;
}
fprintf(f,"%d:\n",n);
fprintf(f,"Ma Tran Ban Dau:\n");
for(int i=0;i {
for(int j=0;j fprintf(f,"%4d",*(*(p+i)+j));
fprintf(f,"\n");
}
int lc1=0;
int lc2=0;
for(i = 0; i < n; i++ )
for(int j=0;j {
{
sum = TongDuongCheoMaTran( p,i,n ,j);
if( Indexmax <= sum )
{
Indexmax = sum;
lc1=i;
lc2=j;

}
}
}
printf("Tong Lon Nhat %d \n",Indexmax);
fprintf(f,"Tong Lon Nhat %d\n ",Indexmax);
int d=lc1;
int c=0;
if(d==n-1)
{
c=lc2;
while(d>=0&&c<n)
{
fprintf(f,"%4d",*(*(p+d)+c));
d--;
c++;
}
fprintf(f,"\n");
}
while(d>=0&&c {
fprintf(f,"%4d",*(*(p+d)+c));
d--;
c++;
}
fprintf(f,"\n");

}
int main()
{
int **p,n;
Nhap(p,n);
for(int i=0;i for(int j=0;j printf("%4d",p[i][j]);
}
printf("\n");
}
XuatFile(p,n);
for( i = 0;i {
delete []p[i];
}
delete []p;
getch();
return 0;
}


ae xem có gì sai không chỉ bảo
mới làm lại

※ Bài viết cùng chuyên mục


Tác giảThông điệp
Toend2008
Member

Toend2008
Member
Giới tính : Nam
Tuổi : 21
Posts Posts : 377
Coins Coins : 564
Thanked Thanked : 33
KTLT Câu 2 Đề II Empty
Bài gửiTiêu đề: Re: KTLT Câu 2 Đề II   KTLT Câu 2 Đề II EmptyThu 24 Dec 2009, 11:21

Trình biên dịch C Free
Code:
#include "Stdio.h"
void InputDos(int **&A, int &n){
   printf("Enter N(order of a square matrix): ");scanf("%d",&n);
   A = new int*[n];
   for(int i = 0; i < n; i++){
      A[i] = new int[n];
   }
   for(int i = 0; i < n; i++){
      for(int j=0; j < n; j++){
      printf("Enter A[%d][%d]: ",i,j);scanf("%d",&A[i][j]);
      }
   }
}
void OutputFile(int **A, int n, char *filename){
   FILE *f = fopen(filename,"wt");
   int SumMax = A[0][0];
   int Sum;
   int mix;//mix = memoryindex //luu lai dong vi tri co duong cheo lon nhat
   //Information processing
   for(int ix=0;ix<2*n;ix++){//ix = index//co n*2 duong cheo, xet tung duong cheo
      Sum=0;
      for(int i=0;i<n;i++){
         for(int j=0;j<n;j++){
            if(i+j==ix){//dac diem gia tri nam tren duong cheo
               Sum+=A[i][j];
            }
         }
      }
      if(Sum>SumMax){
         SumMax = Sum;
         mix = ix;
      }
   }
        //Enumerate
   fprintf(f,"\nTong Lon Nhat: %d\n",mix);
   fprintf(f,"Duong Cheo: ");
      for(int i=0;i<n;i++){
         for(int j=0;j<n;j++){
            if(i+j==mix){
               fprintf(f,"%4d",A[i][j]);
            }
         }
      }
   fclose(f);
}
void main(){
   int **A,n;
   InputDos(A,n);
   OutputFile(A,n,"D:\\result.txt");
   for(int i=0;i<n;i++){
      delete A[i];
   }
   delete []A;
}

※ Bài viết cùng chuyên mục


Tác giảThông điệp
daokiem_votinh64
Member

daokiem_votinh64
Member
Giới tính : Nam
Tuổi : 31
Posts Posts : 556
Coins Coins : 2157
Thanked Thanked : 168
KTLT Câu 2 Đề II Empty
Bài gửiTiêu đề: Re: KTLT Câu 2 Đề II   KTLT Câu 2 Đề II EmptyThu 24 Dec 2009, 12:00

xin cống hiến cho các bác bài của em.hoi pro nhưng khong quá khó hiểu.bác nào không hiẻu cứ pm

Code:

#include "stdio.h"
#include "conio.h"
void nhap(int **&a,int &n,char *filename)
{
 FILE *f=fopen(filename,"rt");
 if(f==NULL)
 {
  printf("loi khi mo file");
  return ;
 }
 fscanf(f,"%d",&n);
 a=new int*[n];
 for(int i=0;i<n;i++)
  a[i]=new int [n];
 for(i=0;i<n;i++)
  for(int j=0;j<n;j++)
  fscanf(f,"%d",&a[i][j]);
 fclose(f);
 
}
void xuat(int **a,int n)
{
 for(int i=0;i<n;i++)
 {
  for(int j=0;j<n;j++)
  printf("%4d",a[i][j]);
  printf("\n\n");
 }
}
void xuatdc(int **a,int n,int p)
{
 for(int i=0;i<n;i++)
  for(int j=0;j<n;j++)
  if(i+j==p-1)
    printf("%4d",a[i][j]);
}
int tong(int **a,int n,int p)
{
 int s =0;
 for(int i=0;i<n;i++)
  for(int j=0;j<n;j++)
  if(i+j==p-1)
    s=s+a[i][j];
 return s;
}
void tongdc(int **a,int n)
{
 int lc=a[0][0],i1;
 for(int i=1;i<=2*n-1;i++)//co tac ca 2*n-1 duong cheo
  if(tong(a,n,i)>lc)
  {
  lc=tong(a,n,i);//duong cheo thu i
  i1=i;
  }
 printf("duong cho co tong lon nhat la \n\n");
 xuatdc(a,n,i1);
}
void main()
{
 int **a,n;
 nhap(a,n,"d:\\input1.txt");
 xuat(a,n);
 tongdc(a,n);
 for(int i=0;i<n;i++)
  delete []a[i];
 delete []a;
 getch();
}

※ Bài viết cùng chuyên mục


Tác giảThông điệp
vanhoa8989
Member

vanhoa8989
Member
Giới tính : Nam
Tuổi : 31
Posts Posts : 55
Coins Coins : 66
Thanked Thanked : 3
KTLT Câu 2 Đề II Empty
Bài gửiTiêu đề: Re: KTLT Câu 2 Đề II   KTLT Câu 2 Đề II EmptyMon 28 Dec 2009, 01:15

Có thể coment rõ cái hàm này được hok ban?
int tong(int **a,int n,int p)//int p la cái ji?
{
int s =0;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
if(i+j==p-1)// giải thích chỗ này dùm nha?
s=s+a[i][j];
return s;
}
thank?

※ Bài viết cùng chuyên mục


Tác giảThông điệp
daokiem_votinh64
Member

daokiem_votinh64
Member
Giới tính : Nam
Tuổi : 31
Posts Posts : 556
Coins Coins : 2157
Thanked Thanked : 168
KTLT Câu 2 Đề II Empty
Bài gửiTiêu đề: Re: KTLT Câu 2 Đề II   KTLT Câu 2 Đề II EmptyMon 28 Dec 2009, 02:20

he he.p là chỉ số đường chéo muốn tính.VD:ma trận 3x3 thì sẽ có 2*n-1=5 d/c ,muốn tính tổng đường chéo nào thì đưa vào chỉ số d/c đó.

còn cái i+j==p-1
nghĩa là.khi một giá trị a[i][j] thuộc một d/c (song song chéo phụ,chéo chính chưa kiểm tra)thì nó có tính chất i+j của giá trị đó=chỉ số d/c mà phần tử đó thuộc.VD:

ma trận 3x3

1 2 3
4 5 6
7 8 9

a[1][1]=5 thuộc d/c 3,i+j(1+1)=3-1.
cáy này phải vẽ ra và chạy tay sẽ thấy dễ dàng hơn,cả buổi trưa của em đó,không quá khó đâu.
thấy hay thì vote cho em cái .giờ này là 2'30 AM đó nha.đuối quá

※ Bài viết cùng chuyên mục


Tác giảThông điệp
Sponsored content


KTLT Câu 2 Đề II Empty

※ Bài viết cùng chuyên mục


 
KTLT Câu 2 Đề II
Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
Windows Việt :: Lưu Trữ :: Lưu Trữ - Các môn học cũ :: Kỹ Thuật Lập Trình-
[Windows Việt] Deverloped by Nguyễn Gia Phú - https://windows.forumvi.com
Powered by © Forumotion.com - phpBB™ version ©phpBB2
Go to top Go to bottom