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();
}

 

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
Trần Thành Vi Thanh Member đã bình luận 15:20 04-05-2017

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.

thangliudiu đã bình luận 18:19 08-05-2017

Bạn đọc chơi! 

#include "stdafx.h";
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<conio.h>

int n = 0;
int dem =0;
void XuatMang(int a[])
{
	printf("\nMang so nguyen la: \n");
	int i;
	srand(time(NULL));
	for (i = 0; i<n; i++)
	{
		a[i] = 0 + rand() % 10;
		printf("\na[%d] = %d \n", i, a[i] );
	}
}

//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 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];
				dem++;
			}
		}
	}
	return s;
}



void main()
{

	int a[100];
	printf("Nhap n: ");
	scanf_s("%d", &n);
	XuatMang(a);
	int tong = TongChanCuaMang(a);

	printf("\n cac chu so chan trong mang la %d\n", dem);
	printf("\n tong cac chu so chan trong mang la %d\n", tong);
	_getch();
}

 

Câu hỏi mới nhất