30/09/2018, 23:48
Em không hiểu đoạn code sau nhờ anh chị giải thích giúp
đếm số lần xuất hiện của các phần tử trong mảng một chiều
em không hiểu chổ if( b[i] ) không đặt điều kiện ở trong là sao
#include<stdio.h>
int a[100];
int b[100];
int n;
void nhap(){
printf("
Nhap n = ");
scanf("%d", &n);
for( int i = 0; i< n; i++ )
{
printf("
a[%d] = ", i+1);
scanf("%d", &a[i]);
}
for( int i = 0; i< n; i++ )
b[i] = 1; // gia tri a[i] tuong ung chua dc xet
}
void dem(){
printf("Gia tri so lan
");
for( int i = 0; i< n; i++ ){
int count = 1;
if( b[i] )
{
b[i] = 0; // da xet a[i]
for( int j = 1+i; j < n; j ++ ){
if( a[j] == a[i] ) {
count++;
b[j] = 0;
}
}
printf("%5d %5d
", a[i], count);
}
}
}
int main(){
nhap();
dem();
return 0;
}
Bài liên quan
Format code lại cho dễ đọc bạn ơi, bôi đen rồi
Ctrl + Shift + C
…nếu như mình k nhầm thì if(b[i]) đc hiểu như bạn đang gán b[i]==0
Mảng b thì có nhiệm vụ xét coi phần tử nào chưa được đếm (mang giá trị 1) đếm rồi thì nhận giá trị 0.
Còn if thì thử đoạn code này xem nó sẽ xuất ra dòng nào.
R thử thay đổi 1 thành 0 rồi build and run.