01/10/2018, 13:54
Giải thích về ((float*)a)+i*20 và (float*)a
anh chị giải thích giùm em về 1 số câu lệnh trong cái chương trình này
(float*)a và ((float*)a)+i*20 là gì ạ
đây là toàn bộ chương trình
em cảm ơn ạ
#include <iostream>
#include <iomanip>
using namespace std;
void nhapmt(float a[20][20],int m, int n){
for(int i=0;i<m;i++)
for(int j=0;j<n;j++){
cout<<"
a["<<i<<"]["<<j<<"] = ";
cin>>a[i][j];
}
}
void inmt(float a[20][20], int m, int n){
cout<<setiosflags(ios::showpoint)<<setprecision(1);
cout<<"
Mang da nhap : ";
for(int i=0;i<m;i++)
for(int j=0;j<n;j++){
if(j==0) cout<<"
";
cout<<setw(6)<<a[i][j];
}
}
void maxminds(float *x,int n,int &vtmax,int &vtmin){
vtmax=vtmin=0;
for(int i=1;i<n;i++){
if(x[i]>x[vtmax]) vtmax=i;
if(x[i]<x[vtmax]) vtmin=i;
}
}
int main(){
float a[20][20];
int m,n;
cout<<"Nhap so hang va cot :
";
cin>>m>>n;
nhapmt(a,m,n);
inmt(a,m,n);
float *p =(float*)a;
int vtmax,vtmin;
for(int i=0;i<m;i++){
p=((float*)a)+i*20;
maxminds(p,n,vtmax,vtmin);
cout<<"
Hang "<<i<<" phan tu max = "<<p[vtmax]<<" tai cot"<<vtmax;
cout<<"
Phan tu min = "<<p[vtmin]<<" tai cot "<<vtmin<<endl;
}
}
Bài liên quan
Bạn tìm hiểu về con trỏ, con trỏ mảng với ép kiểu nhé.
Ủa,
float[][]
ép kiểu thànhfloat*
được à O_o. C++ kỳ ghê