مجموع ارقام را بدرستی حساب نمیکنه (سی پلاس)!
سلام
برنامه زیر قرار است یک شماره دانشجویی از کاربر بگیره و مجموع ارقامش را حساب کند و آن مجموع را به صورت زیر در خروجی چاپ کند :
دو تا مشکل دارم !
1- اینکه اگه مثلا این شماره دانشجویی را بهش بدم 8851011041 ، با اینکه مجموعش میشه 29 اون به اندازه 39 چاپ میکنه ! و تصورم اینه که اگه بین اعداد ورودی صفر باشه براش این مشکل ایجاد میشه .
خوب ببخشید دیگه سوالم خیلی ابتدایی است !
کد:
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
int main()
{
int n=0 , sum=0 ;
unsigned long int number;
cout << "Enter the number : ";
cin >> number;
while ( number >0)
{
sum += number % 10 ;
number /=10;
}
cout << endl<< setw(35);
for (int i=1;i<9;i++)
{
if( n==sum) break;
for (int j =1; j<=i ; j++)
{
n += j ;
if (n>sum)
{
n -=j ;
break;
}
else
cout << j ;
cout << " ";
}
int h=3*i;
cout<<endl<<setw(35-h) ;
}
return 0;
}
2- دوم اینکه اگه من این الگوریتم را از ابتدایی که ورودی را تحویل میگره داخل یه While قرار بدم برنامه اجرا میشه اما درست کار نمی کنه ! نمی دونم چرا
کد:
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
int main()
{
int n=0 , sum=0 ;
unsigned long int number;
cout << "Enter the number : ";
cin >> number;
while (number != -1)
{
cout << "Enter the number : ";
cin >>
while ( number >0)
{
sum += number % 10 ;
number /=10;
}
cout << endl<< setw(35);
for (int i=1;i<9;i++)
{
if( n==sum) break;
for (int j =1; j<=i ; j++)
{
n += j ;
if (n>sum)
{
n -=j ;
break;
}
else
cout << j ;
cout << " ";
}
int h=3*i;
cout<<endl<<setw(35-h) ;
}
}
return 0;
}
یعنی اینجا کسی سی پلاس بلد نیست !!!
:11:با دمتون گرم 21 نفر فقط میان نگاه میکنند و میرند ...
کارم گیره