الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة في الجمع

مغلق
بدأه مبرمجة ++C في 4 أكتوبر 2005 · 5 رد · 500 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
//program read a number and print the number of digit and 
// the sum of this number>>>>>>>>>>>>>>
///=====================================================///

#include<iostream.h>

int main()
{
	int number;
	int count = 0;
	int digit;
	int sum = 0;

	cout <<"\tenter a number = ";
	cin >> number;

	digit = number;
	while ( digit > 0 )
	{
  digit = digit / 10;
  count++;
  sum = sum + digit;

	}

	cout << "\n\tThe # of digit in "<< number
   << ".is. "<< count << endl;
	cout << "\nThe sum = "<< sum << endl;

	return 0;
}

برنامج يقوم بقراءة رقم مثلا 123 يحسب عدد خاناته 3 و حاصل الجمع 6

ضبط معي عدد الخانات لكن لم اعرف الجمع ؟؟

#2

هناك مشكلة في الكود

digit = number;
while ( digit > 0 )
{
 digit = digit / 10;
 count++;
 sum = sum + digit;

}

على فرض ان الرقم المدخل هو 123, فعندما تقسم العدد على عشرة تحصلين على 12 .. و هذا العدد يتم خزنه في digit!! بالتأكيد لو اضفت هذا الرقم الى sum ستحصلين على النتيجة الغلط.

ما تريدينه هو ليس القسمة, بل mod او %

لو قمتي بعمل

123 % 10

ستحصلين على الباقي من قسمة 123 على 10, يعني 3

بعدين لما تكررين العملية مع 12 تحصلين على 2

و بعدين نفس الشي على الـ 1 تحصلين على 1

#3

يمكن استخدام عملية تحديد المدخلات من قيمة المتغير بمعنى انه

لدينا متغير x وتم ادخال قيمة للمتغير 125 سيقوم باستلام الرقم 1 ووضعه فى اول خانة من مصوفة y

ثم يضع العدد الثانى 2 فى الخانة الثانية وذالك بأستخدام عليات التكرار ثم يقيس كم خانة تم حجزها بالمصفوفة اذن هو سيكون عدد الارقام

ثم بعد ذالك يتم جمعهم ويتم من خلال اخذ قيمة كل خانة وجمعها على الاخرى ثم طباعة الناتج

ويتم ذالك عن طريق عمليات arry

اى ان عدد الخانات الموجودة بالمصفوفة y هى عدد الارقام المدخلة

int y [n]
 y[1]
y[2]
y[3]


y[1] + y[2] +y[3]

بسيطة

تم تعديل هذه المشاركة بواسطة hamada hassan ali في 5 أكتوبر 2005 في 01:00

_____________________________

C Language && Windwos_API

_____________________________

#4

اخي انا جربت المود ٍ% قبل ذلك لكن الجمع خطا ؟؟

اما بالنسبة لللاري لم افهم شرحك والرقم ليس له شي محدد

#5
//program read a number and print the number of digit and
// the sum of this number>>>>>>>>>>>>>>
///=====================================================///

#include<iostream.h>

int main()
{
int number;
int count = 0;
int digit;
int sum = 0;
int i=10;
int x=0;
cout <<"\tenter a number = ";
cin >> number;

digit = number;
while ( digit > 0 )
{
 x = digit %i;
digit=digit /i;
 count++;
 sum = sum + x;
i=i*10;
}

cout << "\n\tThe # of digit in "<< number
  << ".is. "<< count << endl;
cout << "\nThe sum = "<< sum << endl;

return 0;
}

تم تعديل هذه المشاركة بواسطة احمد غريب في 5 أكتوبر 2005 في 02:29

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#6

شكرا لك أحمد غريب

انا عرفت المشكلة عندي اني استخدمت القسمة بدون المود

وهذا يطلع خطأ

شكرا للجميع .. جزيتم خيرا

هذا الموضوع مغلق.

مواضيع مشابهة