Ai có thể chỉ em chạy mảng 1 chiu tính tổng và trung bình cộng của mảng trong khoảng 10-40 ko ạ? Em mới hk nên chưa rõ cách hoạt động của mảng
Cách chạy mảng 1 chiều tính tổng và trung bình cộng của mảng?
- Bạn chưa biết cách truy xuất từng phần tử trong mảng?
- Chưa biết dùng vòng lặp?
- Chưa biết gọi một số thuộc tính của mảng (C#)?
2 Likes
Mk bit cách dùng và truy xuất mảng và vòng lặp nhưng điều mk đang phân vân là tính trung bình cộng trong mảng có nên dùng 2 vòng lặp hay lập điều kiện
#include"stdio.h"
#include"conio.h"
#define Fuck 100
void Nhapmang(int a[],int &n)
{ printf("Nhap n:");
scanf("%d",&n);
for(int i=0;i<n;i++){
printf("Phan tu thu a[%d]:\t",i+1);
scanf("%d",&a[i]);
}
}
void Xuatmang(int a[],int n)
{
printf("Noi dung cua mang la:\n");
for(int i=0;i<n;i++)
{
printf("%d\t",a[i]);
}
}
void Tongmang(int a[],int n)
{
int S=0;
for(int j=35;j>=5;j--)
for(int i=0;i<n;i++)
if(a[i]<=a[j]&&a[i]>=a[j-30])
{
S+=a[i];
}
}
printf("\nTong cua mang la:%d",S);
}
float TBC(int a[],int n)
{
int TB=0,k=0;
for(int j=10;j<=40;j++){
for(int i=0;i<n;i++){
if(a[j]<=a[i]&&a[i]<=a[j+30])
{
TB+=a[i];
k++;}
break;}}
printf("%d",TB);
return TB/k;
}
int Min(int a[],int n)
{int min=a[0];
for(int i=1;i<n;i++){
if(min>a[i])
min=a[i];
}
return min;
}
int Max(int a[],int n)
{int max=a[0];
for(int i=1;i<n;i++){
if(max<a[i])
max=a[i];
}
return max;
}
void Sapxep(int a[],int n)
{
int TG;
printf("\nHam sau khi sap xep theo chieu giam dan la:\n");
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
if(a[i]<a[j]){
TG=a[i];
a[i]=a[j];
a[j]=TG;
}
Xuatmang(a,n);
}
main(){
int a[Fuck],n;
float S;
Nhapmang(a,n);
Xuatmang(a,n);
Tongmang(a,n);
S=TBC(a,n);
printf("\nTrung binh cong cua mang trong khoang [10-40]:\t%.3f",S);
printf("\nMin=%d",Min(a,n));
printf("\nMax=%d",Max(a,n));
Sapxep(a,n);
getch();
return 0;
}
Nếu muốn tính tổng hay tbc của mảng từ vị trí start đến end thì bạn có thể làm đơn giản như thế này:
https://ideone.com/CJePiG
3 Likes
Sao lại phải dùng đến 2 vòng lặp nhỉ?
Trong khoảng 10 - 40 là sao? Giá trị của phần tử hay chỉ số của phần tử?
3 Likes
Nhìn code thì 10-40 là window size (tức là running average). Chỉ cần 2 for nối nhau
3 Likes
chỉ số phần tử bạn ak ???
bạn có thể làm mẫu cho mk ko
1 for thôi, hay nói cách khác đây là avg(arr[10…40]).
3 Likes