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

جمع اعداد في سلاسل متتاليه

مغلق
بدأه mse07 في 8 نوفمبر 2006 · 4 رد · 704 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

قمت بكتابة هذا الكود

char Reader[100];
printf("enter the package of invoices:\n");

for (int n=0; n<No;n++){

	 scanf("%s",&Reader);

	 fprintf (pFile, "%s\n",Reader);

}

حيث ساقوم بادخال مجموعة سلاسل كالتالي :

1102701003320240203000000018252201

1302701007386540301000000000252205

1202701005791530210000000002512301

واريد ان اقوم بجمع الارقام التي باللون الاحمر حيث سيكون ناتجها = 0000210167

انا اعرف اني لااستطيع الجمع لان نوع المصفوفه Reader هو من نوع char لكن اذا حولتها الى نوع اخر لايطبع لي جميع الاعداد في الملف النصي

فالذي اريده كيف اقوم بعملية الجمع واسند ناتج الجمع الى متغير اخر

ملاحظه : المتغير No هو قيمه اقوم بادخالها في البدايه حتى اتحكم بعدد السلاسل .

شاكرا للجميع التعاون

#2

ماذا تقصد الارقام اللي باللون الاحمر؟

ماذا يميّزها؟

يعني من اي خانة تريد ان تبدأ الجمع؟

#3

ماذا تقصد الارقام اللي باللون الاحمر؟

ماذا يميّزها؟

يعني من اي خانة تريد ان تبدأ الجمع؟

#4

اريد ان احدد في كل سلسله من العدد 22 الى العدد 31 اي انني ساقوم بجمع الاعداد من الخانه 22 الى الخانه 31 واظهر ناتجها

اما بالنسبه للناتج فيكون على مصفوفه اخرى وقد قمت بمحاوله ولكن لم تنجح ولكن اضعها هنا لارى ان كنت اقترب من الصواب :

for( int i=1;i<=No;i++)

for (int j=0;j<10;j++)

sum[i-1]=Reader[22][i-1];

sum=sum+sum[i-1];

printf("sum=%d",sum);

حيث سيقوم بتحديد الارقام من الخانه 22 الى الخانه 31 ويرسلها الى مصفوفة sum وبعد الانتهاء من تحديد الاجزاء المراد جمعها من كل سلسله يقوم بعملية الجمع

ارجو ان يكون واضحا

واعتقد ان المثال واضح من الارقام التي قمت بتلوينها سابقا .

وشكرا .

#5

شوف يا أخى, لو عدد الفواتير دى كتير و ممكن تطلع رقم خيالى فا لازم تستخدم مكتبة للأعداد الضخمة مثل gmp مثلا.

لو عددها معقول يبقى ممكن الكود دا يشتغل معاك>

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

#define BIGNUM unsigned long long

void main()
{
	ifstream fs("test.txt");
	BIGNUM sum = 0;
	string buff;
	int n;
	cout << "Enter the number of invoices: ";
	cin >> n;

	for (int i=0; i<n; i++)
	{
		fs >> buff;
		string temp = buff.substr(22, 10);
		sum += atol(temp.c_str());
	}

	cout.width(10);
	cout.fill('0');
	cout << sum << endl;
}

أنا حطيت تعريف ال BIGNUM علشان تقدر تحط ال نوع اللى يناسبك.

بالتوفيق يا أخى

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

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