Hỏi đáp
Chia sẻ kiến thức, cùng nhau phát triển
Không xuất ra được tổng các chữ số trong mảng
14:00 04-05-2017
740 lượt xem
2 bình luận
18:19 08-05-2017
Không biết mình đã sai phần nào nên không xuất ra được phần tổng các chữ số trong mảng nó chỉ xuất ra là 0.
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<conio.h>
void XuatMang(int a[], int n)
{
printf("\nMang so nguyen la: \n");
int i;
srand(time(NULL));
for (i = 0; i<n; i++)
{
printf("\na[%d] = %d \n", i, 0 + rand() % 100);
}
}
int TongChanCua_n(int n)
{
if (n == 0)
return 0;
if (n % 2 == 0)
return TongChanCua_n(n / 10) + (n % 10);
return TongChanCua_n(n / 10);
}
int TongChanCuaMang(int a[], int n)
{
int s;
s = 0;
if (n == 0)
return 0;
else
{
for (int i = 0; i < n; i++)
{
if (a[i] % 2 == 0)
{
s = s + (a[i]%2);
}
}
}
return s;
}
void main()
{
int n;
int a[100];
printf("Nhap n: ");
scanf_s("%d", &n);
XuatMang(a, n);
printf("\nTong cac chu so chan trong n la %d\n", TongChanCua_n(n));
printf("\nTong cac chu so trong mang la %d\n", TongChanCuaMang(a, n));
_getch();
}
Chỗ s = s + (a[i]%2) sửa lại thành s = s + a[i]. Nguyên nhân là do bạn kiểm tra a[i] chia hết chia 2 xong lại cộng dồn s với phần dư (vì chia hết nên phần dư luôn là 0) nên tổng luôn ra 0.
Bạn đọc chơi!