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

لو سمحتوا ابي مساعدة في c

مغلق
بدأه numo_11 في 7 أكتوبر 2004 · 8 رد · 627 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لو سمحتوا كيف احول من numerals الى decimal

وشكرا

#2
اقتباس
لو سمحتوا كيف احول من numerals الى decimal

ماقصدك بال numerals ,,

أعرف ان ال decimal هي الأعداد العشرية فما هي ال numerals ؟

وسنساعد أكثر ,,

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#3

السلام عليكم

انا اريد ان احول من roman الى decimal

Roman Decimal

M 1000

D 500

C 100

L 50

X 10

V 5

I 1

يعني لو ادخل XIV يعطيني14 بdecimal

وشكرا...

#4

اصطبحنا على الصبح

طيب خليك طيب

ده إنت لسه جديد

لازم أول حاجة تعملها تدخل وتتملق المشرفين وتجيب لهم هدايا وخصوصا الأخ HGB علشان يحبوك

وفي مثل كده من تأليفي وهو:

إذا أردت الوصول فتقرب إلى المسؤول

يعني شوية كلام حلو كده

المهم أخي الحبيب numo_11

أهلا بك في منتدانا

سؤالك ده حله في المخ سهل

ولكن حتى تترجمه إلى برنامج سيأخذ وقت

وسوف تحتاج إلى مكتبتي string , algorithm

يعني الحل سيكون طويل إلى حد ما.

حاول تجرب مع نفسك

لازم تعتمد على نفسك

لازم

وإن شاء الله حتنجح

إياك وانت في أول طريقك للبرمجة أن تسأل عن حل مسائل

ممكن تسأل أسئلة عن اللغة

أو مقدمة لفكرة الحل

أم الحل نفسه فلا.

كنت سأعطيك الحل ولكني تراجعت في اللحظة الأخيرة حتى لا أضرك

أرجوك اعمل بنصيحتي

System Engineer

Red Hat Certified Engineer

Red Hat Certificate Number

805010381752078

#5

السلام عليكم

اشكركم اخواني

انا لااريد البرنامج من اوله الى اخره

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

لان run مايطلع معي

في البرنامج مايطلع نواتج ولا اعرف السبب

وجزاكم الله كل خير

#6

السلام عليكم

أخي numo_11

اذا ممكن تورينا اللي كتبت حتى نقدر نساعدك ونقلك وين الخطا

مع تحياتي.

#7

اهلا...

المطلوب منا ان ندخل roman وما يكون طوله اكثر من 10

code

printf("enter roman\n")

gets(a);

len=strlen(a);

for(i=0;i<len;i++)

{

if(len<=10)

if(*(a+i)=='M'||*(a+i)=='D'||*(a+i)=='C'||*(a+i)=='L'||*(a+i)=='X'

||*(a+i)=='V'||*(a+i)=='I')

y=1;

else

{

printf("enter other roman\n");

gets(a);

continue;

}

ومثلا XIV

x=10اكبرمن i=1

فc=10

ثم c=9لان i<v

v=5

اجمع مع c

c=14

for(k=0;k<len;k++)

{

switch(*(a+k))

{

case'M':

n1=1000;

break;

case'D':

n1=500;

break;

case'C':

n1=100;

break;

case'L':

n1=50;

break;

case'X':

n1=10;

break;

case'V':

n1=5;

break;

case'I':

n1=1;

break;

}

}

if(k==0)

n2=n1;

if(k!=0||k!=len)

if(n2>n1)

{

c+=n2;

n2=n1;

}

else

{

c-=n2;

n2=n1;

}

if(k==len)

c+=n1;

هذا اجزاء من الكود ودي اعرف وين الخطا

وجزاكم الله كل خير

#8

أخي الكريم numo_11

لقد عدلت الكود اللي كتبتو والمسالة ابسط مما تتصور

انا جربت الكود على الرقم XIV وطلع عندي 14 وما جربتو على ارقام تانية ياريت تجربو واذا في اي مشكلة احنا تحت امرك

مع تحياتي

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void main()
{
	int c=0,n1=0,n2=0,k,len;
	char a[10];
    printf("enter roman\n");
    gets(a);
    len=(int)strlen(a);
	if(len<=10)
	{
  for(k=0;k<len;k++)
  {
 	 switch(a[k])
 	 {
    case'M':
      n1=1000;
      break;
    case'D':
      n1=500;
      break;
    case'C':
      n1=100;
      break;
    case'L':
      n1=50;
      break;
    case'X':	
      n1=10;
      break;
    case'V':
      n1=5;
      break;
    case'I':
      n1=1;
      break;
    default : printf("Error input\n");
      exit(1);	
 	 }

 	 if(k==0)
                n2=n1;
 	 else
    if(n2>n1)
    {
   	 c+=n2;
   	 n2=n1;
    }
    else
    {
   	 c-=n2;
   	 n2=n1;
    }
  }
  c+=n2;
	}
	else
  exit(1);
	printf("%d\n",c);
}
#9

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

جزاك الله خير ..اخي الكريم

لكن لو سمحت مامعنى

exit(1)

ولماذا وضعت intقبل strlen

مشكور....

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…