Bài 203 : Tính tổng các giá trị có chữ số hàng chục là chữ số 5 có trong mảng một chiều các số nguyên
Tải Code về máy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
| #include<stdio.h>
#include<conio.h>
#define MAX 100
#define bool
#include<math.h>
void nhapmang(int a[MAX],int &n)
{
do{
printf("Nhap vao so phan tu cua mang:n=");
scanf("%d",&n);
if(n<1||n>MAX)
printf("So ban nhap vao khong hop le!Xin vui long nhap lai!\n");
else
break;
}while(n<1||n>MAX);
for(int i=0;i<n;i++)
{
printf("Nhap vao a[%d]=",i);
scanf("%d",&a[i]);
}
}
void xuatmang(int a[MAX],int n)
{
printf("\n>>>>>>>>>>>>>MANG VUA NHAP LA:<<<<<<<<<<<<<<<\n");
for(int i=0;i<n;i++)
{
printf("%8d",a[i]);
}
printf("\n");
}
void xulydulieu(int a[MAX],int n)
{
int s=0,s1=0,s2=0,s3=0,s4,Co;
bool Co=false;
int dem,demb=0,demd=0,demf=0,demh=0;
printf("Cac gia tri co chu so hang chuc la 5:");
for(int i=0;i<n;i++)
{
if(a[i]>=-99&&a[i]<=-10||a[i]>=10&&a[i]<=99)
{
int b=a[i]/10; // những số âm mà có 2 chữ số thì chắc chắn chữ số hàng chục không bao giờ là chữ số 5 (bởi vì 5>0).
if(b==5)
{
printf("%8d",a[i]);
demb++;
s+=a[i];
Co=true;
}
}
if(a[i]>=-999&&a[i]<=-100||a[i]>=100&&a[i]<=999)
{
int c=abs(a[i])/10; // Ta phải dùng thuật toán trị tuyệt đối ở đây nếu không thì các số âm nhưng có hàng chục là chữ số 5 máy sẽ không liệt kê ra.
int d=c%10;
if(d==5)
{
printf("%8d",a[i]);
demd++;
s1+=a[i];
Co=true;
}
}
if(a[i]>=-9999&&a[i]<=-1000||a[i]>=1000&&a[i]<=9999)
{
int e=abs(a[i])/10; // Ta phải dùng thuật toán trị tuyệt đối ở đây nếu không thì các số âm nhưng có hàng chục là chữ số 5 máy sẽ không liệt kê ra.
int f=e%10;
if(f==5)
{
printf("%8d",a[i]);
demf++;
s2+=a[i];
Co=true;
}
}
if(a[i]>=-99999&&a[i]<=-10000||a[i]>=10000&&a[i]<=99999)
{
int g=abs(a[i])%100; // Ta phải dùng thuật toán trị tuyệt đối ở đây nếu không thì các số âm nhưng có hàng chục là chữ số 5 máy sẽ không liệt kê ra.
int h=g/10;
if(h==5)
{
printf("%8d",a[i]);
demh++;
s3+=a[i];
Co=true;
}
}
}
dem=demb+demd+demf+demh;
s4=s+s1+s2+s3;
if(Co==true)
{
printf("\nTrong mang co %d gia tri co chu so hang chuc la 5",dem);
printf("\nTong tat ca cac gia tri co chu so hang chuc la 5 co trong mang la:%d",s4);
}
else
printf("\nKhong co gia tri nao trong mang co chu so hang chuc la 5");
}
void main()
{
int a[MAX],n,NAMSON;
quaylai:nhapmang(a,n);
xuatmang(a,n);
xulydulieu(a,n);
printf("\nBan co muon tiep tuc chay chuong trinh khong ? Neu co bam phim C,nguoc lai bam bat ky phim nao khac de ket thuc\n");
NAMSON=getch();
if(NAMSON=='c'||NAMSON=='C')
goto quaylai;
}
|
Nhận xét
Đăng nhận xét