English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
مجموعة من أمثلة البرمجة في لغة C
في هذا المثال، ستتعلم البحث عن جميع الأرقام الآرمسترونغ بين إدخالين من قبل المستخدم
للتفهم هذا المثال، يجب أن تعرف ما يليبرمجة Cالموضوع:
عدد صحيح إيجابي يُدعى عدد Armstrong (مستوى n) إذا
abcd... = an + bn + cn + dn + ...
للأعداد Armstrong من ثلاثة أرقام، مجموع أرقام النصية من الفئة n تساوي العدد نفسه. على سبيل المثال، 153 هو عدد Armstrong لأن
153 = 1*1*1 + 5*5*5 + 3*3*3
قبل محاولة هذا البرنامج، يرجى تعلم كيفيةتحقق whether العدد هو عدد Armstrong.
#include <math.h> #include <stdio.h> int main() { int low, high, number, originalNumber, rem, count = 0; double result = 0.0; printf("ادخل اثنين من الأرقام (الفرق): "); scanf("%d %d", &low, &high); printf("%d و%d بينهما أرقام Armstrong هي: ", low, high); //التحويل من (low + 1) إلى (high - 1) //في كل تكرار، يتم التحقق whether الرقم هو Armstrong for (number = low + 1; number < high; ++number) { originalNumber = number; //حساب عدد الأرقام while (originalNumber != 0) { originalNumber /= 10; ++count; } originalNumber = number; //النتيجة تحتوي على مجموع أرقام النصية من الفئة n من الأرقام الديناميكية while (originalNumber != 0) { rem = originalNumber % 10; result += pow(rem, count); originalNumber /= 10; } //تحقق من whether الرقم يساوي مجموع أرقام النصية من الفئة n if ((int)result == number) { printf("%d ", number); } //إعادة تعيين القيم count = 0; result = 0; } return 0; }
النتيجة
ادخل اثنين من الأرقام (الفرق): 200 2000 الأرقام Armstrong بين 200 و2000 هي: 370 371 407 1634
في البرنامج، الحلقة الخارجية تبدأ من(low + 1)التحويل إلى(high-1)في كل تكرار، يتم التحقق من whether number هو عدد Armstrong.
في الدائرة الخارجية، أولاً، احسب عدد أرقام عدد صحيح، و احفظها في count. و احفظ مجموع قوى الأرقام في متغير result.
إذا كان number يساوي result، فإن هذا الرقم هو عدد Armstrong.
الإشارة:يجب أن يتم إعادة تعيين count و result إلى 0 في كل تكرار من الدائرة الخارجية.