-
مشکل در کد تبدیل اعداد
سلام.
من میخوام یه کد تبدیل اعداد یونانی رو توی Visual C++ 6.0 اجرا کنم.ولی یه error میگیره.
از این آدرس هم برداشتم کد رو:
کد:
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=885&lngWId=3
تو c هم اول یه پروژه Win32 Console Application درست میکنم.بعد یه فایل C++ Source File ایجاد میکنم و توش کپی میکنم.
کد اینه.ممنون میشم بگید مشکل چیه :
کد:
#include <iostream.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>
void main()
{
char a[15];
cout<<"Enter The Roman Number :";
cin>>a;
for(int x=0,p=0,flag=0,rom=0,int i=strlen(a)-1;i>=0;i--)
{
if (a[i]=='i' || a[i]=='I') x=1;
if (a[i]=='v' || a[i]=='V') x=5;
if (a[i]=='x' || a[i]=='X') x=10;
if (a[i]=='l' || a[i]=='L') x=50;
if (a[i]=='c' || a[i]=='C') x=100;
if (a[i]=='d' || a[i]=='D') x=500;
if (a[i]=='m' || a[i]=='M') x=1000;
if (x<p) flag = -1;
else flag = 1;
rom= rom + (x*flag);
p=x; //storing the previous value in x
}
cout<<"Numerical value is : "<<rom;
getch();
}
-
متن ارور رو هم بگذار. ولی حدس می زنم مشکل از
کد:
#include <conio.h>
#include <stdlib.h>
باشه. فکر می کنم vc++ این هدر ها رو نمیشناسه. این دو تا رو حذف کن ببین چی میشه. چون این کدی که گذاشتین از هیچ تابعی توی stdlib.h استفاده نمی کنه و فقط getch() ماله con.io.h هست.
-
دوست عزيز كامپايلر من فرق داره تو كامپايلر خودم با اضافه كردن دستور endl به اخر دستور cout (سه خط به آخر كد) مشكلش حل شد احتمال 90 درصد اگه شما هم اين كار رو بكنيد مشكلتون حل ميشه .
كد شما در كامپايلر من
کد:
#include <iostream>
#include <string>
using namespace std;
int main()
{
char a[15];
cout<<"Enter The Roman Number :";
cin>>a;
for(int x=0,p=0,flag=0,rom=0,i=strlen(a)-1;i>=0;i--)
{
if (a[i]=='i' || a[i]=='I') x=1;
if (a[i]=='v' || a[i]=='V') x=5;
if (a[i]=='x' || a[i]=='X') x=10;
if (a[i]=='l' || a[i]=='L') x=50;
if (a[i]=='c' || a[i]=='C') x=100;
if (a[i]=='d' || a[i]=='D') x=500;
if (a[i]=='m' || a[i]=='M') x=1000;
if (x<p) flag = -1;
else flag = 1;
rom= rom + (x*flag);
p=x; //storing the previous value in x
}
cout<<"Numerical value is : "<<rom<<endl;//***********
return 0;
}
-
این برنامه برای بورلند نوشته شده اگه با بورلند کامپایل کنی دوتا خطا داره
1. توی حلقه for اون int رو پاک کن
for(int x=0,p=0,flag=0,rom=0,int i=strlen(a)-1;i>=0;i--)
2.اگه از بورلند یا ویژوال اسدویوی 2005 -2008 استفاده می کنی باید متغیر rom روخارج از حلقه for تعریف کنی
-
حمید رضا جان
مهران عزیز
مهدی جان
خیلی ممنون از کمکتون.با راهنماییتون حل شد.