em có cái bài tập là tìm trong mảng 2 chiều xem số nào có đặc điểm bên phải là số fibonacci bên trái là số nguyên tố rồi tìm xem trong các số đấy số nào to nhất rồi nhân tích vô hướng . em làm đc rồi nhưng mà chưa biét dùng con trỏ để nhân tích vô hướng như nào mong các bác chỉ gùm [IMG]images/smilies/biggrin.png[/IMG]
Mã:
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
int ch(int n){
int d=0;
while(n>0){
d++;
n/=10;}
return d;
}
int pro(int n)
{
if(n==1 || n==2) return 1;
for(int i=2; i<=n/2; i++)
{
if(n%i==0) return 0;
}
return 1;
}
int fb(int t) {
int x=0,y=1,z=0;
while(z<t)
{
z=x+y;
x=y;
y=z;
}
if (z==t)
return 1;
else
return 0;
}
int main(){
int j,i,m,m1,a1,a2,max=1,hmax=1,cmax=1;float Sum=0;
printf("Please, enter the numver of columns and rows :)
");
scanf("%d",&m);
int **a = (int**)malloc(m*sizeof(a[0]));
for(int i=0;i<m;i++){
a[i] = (int*)malloc(m*sizeof(a[i][0]));}
printf("array A[N][N]
");
for(i=0;i<m;i++){
for(j=0;j<m;j++){
printf("A[%d,%d] ",i+1,j+1);
scanf("%d",&a[i][j]);
}
}
printf("array A :
");
for(i=0;i<m;i++){
for(j=0;j<m;j++){
printf(" %d ",a[i][j]);
}
printf("
");
}
for(i=0;i<m;i++)
for(j=0;j<m;j++)
{
if(ch(a[i][j])%2==0)
{
int n1=1;
m1=ch(a[i][j])/2;
while(m1>0)
{
m1--;
n1*=10;
}
a1=a[i][j]1;
a2=a[i][j]%n1;
if (pro(a1)==1 && fb(a2)==1 && a[i][j]>max)
{max=a[i][j];cmax=j;hmax=i;}
}
}
if(max==1) printf("
There isn't any special element in the array ");
else
{
printf(" Special maximum element =%d",max);
for(i=0;i<m;i++)
Sum+=a[hmax][i]*a[i][cmax]; // em muốn dùng con trỏ để nhân cái này
printf("
Number of element maximum=%6.1f",Sum);
}
getch();
for(i=0;i<m;i++)
free(a[i]);
free(a);
return 0;
}
View more random threads:
Thông qua phân tích dữ liệu Google từ 86 quốc gia, mới đây, một công ty tại Anh đã công bố bảng xếp hạng kích tấc "cậu nhỏ" của các nước trên thế giới. Kết quả, hầu hết các nước xếp ở nhóm đầu của...
"Chim" của chàng trai Việt thuộc...