30/09/2018, 17:43
Xóa cột có phần tử lớn nhất trong ma trận?
INPUT:
1
3 3
7 8 1
8 5 6
1 3 5
OUTPUT:
1
6
5
CODE:
#include<stdio.h>
#include<conio.h>
#include<math.h>
FILE *f1=fopen("m.inp","r");
FILE *f2=fopen("m.out","w");
main()
{
int t,i,j,a[20][20],n,d,k,m,b[20][20];
fscanf(f1,"%d
",&t);
while(t--)
{
fscanf(f1,"%d%d",&n,&m);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
fscanf(f1,"%d",&a[i][j]);
int i,j,max=a[0][0];
for(i=0;i<n;i++)
for(j=0;j<m;j++)
if(a[i][j]>max) max=a[i][j];
for(i=0;i<n;i++)
for(j=0;j<m;j++)
if(a[i][j]==max)
{
d=i;
k=j;
}
//Xoa cot co GTLN
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(k==j) continue;
fprintf(f2,"%d ",a[i][j]);
}
fprintf(f2,"
");
}
}
}
Vấn đề là code của e chỉ đúng nếu ma trận chỉ có 1 GTLN. Còn nếu ma trận có nhiều GTLN bằng nhau như INPUT trên thì e chưa nghĩ ra đc code ntn.
Bài liên quan
Đầu tiên tìm
max
của ma trận, sau đó dùng 1 mảngcot
để đánh dấu cómax
hay không. Sau đó chỉ cần in ra những cột không chứa maxB đánh cụ thể code như b nói đc k?
chạy thử trên ideone
Xin lỗi b mình chưa học đến C++. B chuyển giúp m về C đc k?
đây là code
C
rồi mà bạnVậy à? Chắc có mấy từ mình chưa thấy bao h nên trông lạ,