Yahoo Hỏi & Đáp sẽ ngừng hoạt động vào ngày 4 tháng 5 năm 2021 (Giờ Miền Đông nước Mỹ) và từ nay, trang web Yahoo Hỏi & Đáp sẽ chỉ ở chế độ đọc. Các thuộc tính hoặc dịch vụ khác của Yahoo hay tài khoản Yahoo của bạn sẽ không có gì thay đổi. Bạn có thể tìm thêm thông tin về việc Yahoo Hỏi & Đáp ngừng hoạt động cũng như cách tải về dữ liệu của bạn trên trang trợ giúp này.
Giúp mình bài c++ này với?
Viết chương trình nhập mảng 1 chiều các số nguyên, xuất mảng vừa nhập.Tính tổng các fần tử có trong mảng, tính tổng các fần tử chẵn.Đếm số fần tử chẵn có trong mảng.Tìm fần tử chẳn cuối cùng trong mảng, tìm fần tử chẵn đầu trong mảng.Đếm số nguyên tố trong mảng.Tìm fần tử lớn nhất, nhỏ nhất trong mảng= con trỏ.
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<alloc.h>
#include<process.h>
void nhapn(int &n)
{
do
{
printf("\nNhap n:");
scanf("%d",&n);
if(n<=0) printf("\nNhap n>0");
}
while(n<=0);
}
void capphat(int *a,int n)
{
a=(int *)calloc(n,sizeof(int));
if(a==NULL)
{
printf("\nKhong du bo nho");
getch();
exit(1);
}
}
void nhapmang(int *a,int n)
{
for(int i=0;i<n;i++)
{
printf("\nNhap thanh fan a[%d]:",i);
scanf("%d",a+i);
}
}
void xuatmang(int *a,int n)
{
printf("\n**Xuat mang vua nhap***\n");
for(int i=0;i<n;i++)
printf(" %d",*(a+i));
}
void tongfantutrongmang(int *a,int n)
{
int s=0;
for(int i=0;i<n;i++)
s=s+*(a+i);
printf("\nTong fan tu trong mang:");
printf("%d",s);
}
void tongfantuchantrongmang(int *a,int n)
{
int s=0;
for(int i=0;i<n;i++)
if(*(a+i)%2==0) s=s+*(a+i);
printf("\nKet qua tong fan tu chan trong mang:");
printf("%d",s);
}
void demsofantuchantrongmang(int *a,int n)
{
int dem=0;
for(int i=0;i<n;i++)
if(*(a+i)%2==0) dem=dem++;
printf("\nKet qua dem so fan tu co trong mang:");
printf("%d",dem);
}
void main()
{
clrscr();
int n,*a;
nhapn(n);
capphat(a,n);
nhapmang(a,n);
xuatmang(a,n);
tongfantutrongmang(a,n);
demsofantuchantrongmang(a,n);
getch();
}
Các bạn giúp mình mấy câu này nhé:Tìm fần tử chẳn cuối cùng trong mảng, tìm fần tử chẵn đầu trong mảng.Đếm số nguyên tố trong mảng.Tìm fần tử lớn nhất, nhỏ nhất trong mảng= con trỏ.
THanks
fần tử lớn nhất, nhỏ nhất trong mảng= con trỏ.Mình làm như vậy được ko nhỉ ?
void fantulonnhattrongmang(int *a,int n)
{
int max=a[0];
for(int i=0;i<n;i++)
if(*(a+i)>max) max=*(a+i);
printf("\nFan tu lon nhat trong mang:");
printf("%d",max);
}
void fantunhonhattrongmang(int *a,int n)
{
int min=a[0];
for(int i=0;i<n;i++)
if(*(a+i)<min) min=*(a+i);
printf("\nFan tu nho nhat trong mang:");
printf("%d",min);
}
1 Câu trả lời
- 1 thập kỷ trướcCâu trả lời yêu thích
Xin đính chính lại với Tiên ông là ngôn ngữ Tiên đang học là C nhá ,mình nói để cho Tiên khi nào học C++ không thắc mắc vì sao nó khác nha
2 cái tìm max,min của Tiên như zậy là ổn rùi nhưng Tiên thay vì dùng *(a+i) thì dùng a[i] cho nó gọn hì
Bây giờ là tìm phần tử chẵn đầu tiên trong mảng
for(int i=0;i<n;i++)
if(a[i]%2 == 0) break;
printf("\nPhần tu chan đầu tiên là %d",a[i]);
Cái lệnh break ở trên có nghĩa là nếu nó gặp cái nào đúng với đk if thì nó thoát ra vòng lặp for lun
vd như là Tiên có mảng 1 3 2 5 7
Vòng lặp for gặp 1 với 3 là lẻ thì nó không thực hiện j cả tiếp tục chạy gặp 2 là chẵn nó nằm ở vị trí số 3 tức i=2 đúng với đk nên nó break lun bây giớ Tiên in ra là in cái a[2] ah,vì i=2 mà
-TÌm phần tử chẵn cuối cùng thì Tiên cho nó chạy từ cuối mảng lên gặp cái nào đầu tiên thì break
for(int i=n-1;i>=0;i--)
if(a[i]%2 == 0) break;
printf("\nPhần tu chan đầu tiên là %d",a[i]);
-Kiểm tra sô nguyên tố thì Tiên dùng hàm này
int check(int n)
{
int i=2;
while(n%i && i<sqrt(n))i++;
if(i>sqrt(n))return 1;
else return 0;
}
Trong hàm main thì Tiên cứ dùng khai báo biến dem=0
for(int i=0;i<n;i++)
if(check(a[i])dem++;
sau đó in dem ra chính là số nguyên tố trong mảng đó ,chúc Tiên tu luyện thành công,mình có một số bt C đại cương nếu Tiên mún mình gửi cho cứ code từ từ để rèn luyện kĩ năng cũng như thuật toán