Mình có bài tập:
-. input: số nguyên dương n
- out: + n có bao nhiêu chữ số chẵn
+ n có bao nhiêu chữ số lẻ
+ n có các chữ số tăng/giảm dần
và mình viết chương trình như sau:
#include <iostream>
using namespace std;
int dem(int n)
{
int i,tg, sumc=0,suml=0;
i=n;
while (i>0)
{
tg=i%10;
if (tg%2==0){sumc=sumc+1;}
else {suml=suml+1;}
i=i/10;
}
cout << "n co " << sumc << " chu so chan" << endl;
cout << "n co " << suml << " chu so le" << endl;
}
int sr(int n)
{
int i=0,j=0,a,b,demg=1,demt=0,dn,b2;
b=n%10;
dn=n;
b2=dn%10;
while (n > 0)
{
a=b;
n=n/10;
b=n%10;
if(b>a){demg++;}
i++;
}
while (dn > 0)
{
a=b2;
dn=dn/10;
b2=dn%10;
if(b2<a){demt++;}
j++;
}
cout << demg << "-" << i << endl;
cout << demt << "-" << j << endl;
if (demg==i){cout << "n co cac chu so giam dan" << endl;}
if (demt==j){cout << "n co cac chu so tang dan" << endl;}
if (demg!=i&&demt!=j){cout << "n co cac chu so sap xep khong theo thu tu" << endl;}
}
int main()
{
int n;
cout << "n = "; cin >> n;
dem(n);
sr(n);
return 0;
}
mình không hiểu ở chỗ: khi cho demg = 1 và demt = 0 => thì kết quả đúng
demg = 1 và demt = 1 => thì kết quả sai
mình nghĩ 2 vòng lặp while độc lập => 2 biến đếm cũng phải có gt khởi đầu như nhau ???
mong mn giúp đỡ???
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?