برنامه به زبان c برای مقلوب عدد اعشاری وجزر یک عدد می خواهم
Printable View
برنامه به زبان c برای مقلوب عدد اعشاری وجزر یک عدد می خواهم
سلام.
براي محاسبه جزر يك عدد كافي از تابع sqrt كه در math.h قرار داره استفاده كنيد.
مثلا:
در ضمن براي مسئله اولي كه گفتيد براي محاسبه اون كافي از اين الگوريتم استفاده كنيد:کد:#include "stdio.h"
#include "Math.h"
int main()
{
double num = 4;
printf("%f\n",sqrt(num));
return 0;
}
البته توجه كنيد برنامه تنها مقلوب اعداد صحيح رو حساب ميكند.شما براي اينكه مقلوب يك عدد اعشاري رو حساب كنيد ميتونيد از رشته ها استفاده كنيد.تعداد ارقام رو محاسبه كنيد و بعد از تبديل عدد اعشاري به عدد صحيح آنراکد:#include "stdio.h"
int main()
{
int number = 455;
double s = 0 , R;
while(true)
{
R = number % 10;
s= s*10 + R;
number /= 10;
if( number ==0 )
break;
}
printf("%f\n",s);
return 0;
}
مقلوب كنيد سپس محل اعشار رو از تعداد ارقام كم كنيد و عدد مقلوب رو تقسيم بر تعداد بدست آمده ضرب در 10
كنيد.
مثلا:
البته برنامه رو بايد خودتون بنويسيد. اگه به مشكل برخورديد اطلاع بديد.کد:4.55 -> *100 -> 455 -> 554 -> 554/(10*1) -> 55.4
42.1 -> *10 -> 421 -> 124 -> 124/(10*2) -> 1.24
ممنون.
ممنون ولی من خود الگوریتم جزر رو می خواهم.تابع اونو بلد بودم.اگه ممکنه کمک کنید
دوباره سلام.
براي كاري كه شما ميخوايد الگوريتم هاي زيادي وجود داره.
اما تو اين برنامه اي كه براتون گذاشتم از روش نيوتن براي محاسبه جذر يك عدد استفاده ميكنه.
فورمول تخمين نيوتن:
و اين هم يه نمونه از اين برنامه:کد:new_guess = 0.5 ( x / guess + guess)
کد:#include <iostream>
#include <math.h>
using namespace std;
int main()
{
const double SMALLFRACTION = 1.0E-8;
double x;
double r;
cout << "Enter number : ";
cin >> x;
r = x / 2.0;
while(fabs(x - r*r) > SMALLFRACTION*x)
{
cout << r << endl;
r = 0.5 *(x / r + r);
}
cout << "Number was : " << x << ", root is "
<< r << endl;
return 0;
}
دستت درد نکنه.
در رابطه با "البته توجه كنيد برنامه تنها مقلوب اعداد صحيح رو حساب ميكند.شما براي اينكه مقلوب يك عدد اعشاري رو حساب كنيد ميتونيد از رشته ها استفاده كنيد.تعداد ارقام رو محاسبه كنيد و بعد از تبديل عدد اعشاري به عدد صحيح آنرا
مقلوب كنيد سپس محل اعشار رو از تعداد ارقام كم كنيد و عدد مقلوب رو تقسيم بر تعداد بدست آمده ضرب در 10
كنيد " چطوری با رشته ها تعداد ارقام محاسبه می شه وچطوری معین کنیم که مثلا یک عدد چند تا رقم پشت اعشار داره که بر اساس اون رقم ها ضرب 10 کنیم.
."
دوباره سلام.
من دو روش رو به شما معرفی کردم.شاید درست توضیح ندادم. روش اول اینه که شما عدد رو در یک رشته قرار
بدید و بعدش اون رشته رو Reverse کنید. روش دوم هم یک روش ریاضی بود.
شما بهتره از روش اول استفاده کنید.
حالا عدد تون به صورت یک رشته در اختیارتون هست کافی هست اون رو Reverse کنید.کد:#include "stdio.h"
int main()
{
char Number[16];
printf("Type your Number : ");
scanf("%s",Number);
.
.
.
return 0;
}
امیدروارم مشکل حل شده باشه.کد:#include "stdio.h"
#include "string.h"
void Rev(char *Num);
int main()
{
char Number[16];
printf("Type your Number : ");
scanf("%s",Number);
Rev(Number);
return 0;
}
void Rev(char *Num)
{
int len = strlen(Num);
char Buffer[16];
for(int i = len ; i >=0 ;i--)
{
Buffer[len-i] = Num[i-1];
}
Buffer[len] = '\0';
printf("%s\n",Buffer);
}
شرمنده ولی در هنگام اجرا برنامه خطا میده
ولی بازم دستت درد نکنه
دوباره سلام.
برنامه اشكالي نداره.
درمورد error پيش اومده توضيح بديد.
سلام
منم چکش کردم و درسته
شاید اینکه شما میگید مشکل داره به خاطره اینه که در انتهای برنامه getch() نداره و صفحه ثابت نمیمونه
من با کامپایلر توربو سی انجام میدم که سه تا خطا می ده
دوباره سلام.
ممكنه اشكال به خاطر وجود i درحلقه باشه.
در مورد error توضيح بديد.
[QUOTE=someone]دوباره سلام.
دوباره اين برنامه رو امتحان كنيد فكر كنم مشكلتون رفع ميشه.
فكر كنم مشكل اين بود كه مقدار i در حلقه تعريف شده بود:
اميدوارم ديگه مشكلي پيش نياد.کد:#include "stdio.h"
#include "string.h"
#include "conio.h"
void Rev(char *Num);
int main()
{
char Number[16];
printf("Type your Number : ");
scanf("%s",Number);
Rev(Number);
getch();
return 0;
}
void Rev(char *Num)
{
int i;
int len = strlen(Num);
char Buffer[16];
for(i = len ; i >=0 ;i--)
{
Buffer[len-i] = Num[i-1];
}
Buffer[len] = '\0';
printf("%s\n",Buffer);
}
سلام.
این جا جای مطرح کردن پروژه های دانشجویی نیست. این بار چون کاربران در حال گفتگو هستند قفل نمیکنم ولی لطفا تکرار نکنید.
در ضمن وقتی برنامه های به این سادگی رو خودتون ننویسید هیچ وقت برنامه نویس نمیشید. شما میتونید تلاش کنید و اشکالاتتون رو این جا مطرح کنید.
دستت درد نکنه
درست شد
#include <stdio.h>
#include <conio.h>
#include <math.h>
main()
{
float a=0;
int b=0,c=0,i,x=0,y=0;
scanf("%f",&a);
do
{a=a*10;
b=0;
b=a;
c--;
}while(a-b!=0);
while(b>0)
{x=b%10;
y=y*10+x;
b=b/10;
}
a=y*pow(10,c);
printf("%f",a);
getch();
return 0;
}
]سلام چرا این برنامه اشکال داره ؟؟؟؟؟؟؟