لو سمحتوا كيف احول من numerals الى decimal
وشكرا
لو سمحتوا كيف احول من numerals الى decimal
وشكرا
اقتباسلو سمحتوا كيف احول من numerals الى decimal
ماقصدك بال numerals ,,
أعرف ان ال decimal هي الأعداد العشرية فما هي ال numerals ؟
وسنساعد أكثر ,,
السلام عليكم
انا اريد ان احول من roman الى decimal
Roman Decimal
M 1000
D 500
C 100
L 50
X 10
V 5
I 1
يعني لو ادخل XIV يعطيني14 بdecimal
وشكرا...
اصطبحنا على الصبح
طيب خليك طيب
ده إنت لسه جديد
لازم أول حاجة تعملها تدخل وتتملق المشرفين وتجيب لهم هدايا وخصوصا الأخ HGB علشان يحبوك
وفي مثل كده من تأليفي وهو:
إذا أردت الوصول فتقرب إلى المسؤول
يعني شوية كلام حلو كده
المهم أخي الحبيب numo_11
أهلا بك في منتدانا
سؤالك ده حله في المخ سهل
ولكن حتى تترجمه إلى برنامج سيأخذ وقت
وسوف تحتاج إلى مكتبتي string , algorithm
يعني الحل سيكون طويل إلى حد ما.
حاول تجرب مع نفسك
لازم تعتمد على نفسك
لازم
وإن شاء الله حتنجح
إياك وانت في أول طريقك للبرمجة أن تسأل عن حل مسائل
ممكن تسأل أسئلة عن اللغة
أو مقدمة لفكرة الحل
أم الحل نفسه فلا.
كنت سأعطيك الحل ولكني تراجعت في اللحظة الأخيرة حتى لا أضرك
أرجوك اعمل بنصيحتي
System Engineer
Red Hat Certified Engineer
Red Hat Certificate Number
805010381752078
السلام عليكم
اشكركم اخواني
انا لااريد البرنامج من اوله الى اخره
لاني كتبت البرنامج ولكن اريد اعرف الخطا
لان run مايطلع معي
في البرنامج مايطلع نواتج ولا اعرف السبب
وجزاكم الله كل خير
السلام عليكم
أخي numo_11
اذا ممكن تورينا اللي كتبت حتى نقدر نساعدك ونقلك وين الخطا
مع تحياتي.
اهلا...
المطلوب منا ان ندخل 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;
هذا اجزاء من الكود ودي اعرف وين الخطا
وجزاكم الله كل خير
أخي الكريم 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);
}السلام عليكم ورحمة الله وبركاته
جزاك الله خير ..اخي الكريم
لكن لو سمحت مامعنى
exit(1)
ولماذا وضعت intقبل strlen
مشكور....
هذا الموضوع مغلق.
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…