Cái này của bạn , mình trích ra để phân tích nè :
C Code:
//3 Tim so le lon nhat void maxodd(int n,int *p) { int i, max=0,j=0,*tmp; for (i=0;i<n;i++) if((p[i]%2)!=0) { tmp[j]=p[i]; j++; } if((tmp[0]%2)!=0) { max=tmp[0]; for(j=0;j<=i;j++) { if(max<p[j]) max=p[j]; } getch(); } else getch(); }
1. Bạn để ý nhé : bạn lấy các phần tử lẻ gán vào mảng *tmp : >> sau khi gán hết thì >> tmp[] chỉ có j-1 phần tử
toàn số lẻ nên câu if : if ( ( tmp[0]%2) != 0 ) === kô cần thiết
2. Vì chỉ có j phần tử nên vòng for chỉ chạy từ 0 -> j-1
Có gì sai sửa giùm nha ^o^!