pckho0r
چهارشنبه 29 مهر 1388, 13:17 عصر
حقیقتآ هر چی فکر کردم نتونستم راه حل درستی برای این مشکل پیدا کنم :
برنامه زیر رو نگاه کنید :
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
int i;
double *p = (double *) malloc (sizeof(double) * 3);
for(i=0; i<3; i++)
scanf_s("%g,",&p[i]);
for(i=0; i<3; i++)
printf("%g\n",*(p+i));
system("pause");
return 0;
}
ورودی :
1,2,3
خروجی:
-6.27744e+066
-6.27744e+066
-6.27744e+066
اما زمانی که در کد برنامه به جای مقادیر double از مقادیر int , char ,float استفاده می کنم برنامه به درستی کار می کنه اما زمانی که از نوع double استفاده می کنم خروجی برنامه به همین شکلی میشه که می بینید !
تقریبآ هر روشی رو که بلد بودم روی این سورس کد پیاده کردم اما نتیجه یکیه ، کم کم دارم به این نتیجه می رسم که تابع malloc با مقادیر double مشکل داره !
کامپایلری هم که ازش استفاده می کنم visual C++ 2008 SP1 هست.
ضمنآ ایا روشی غیر از استفاده از scanf برای خواندن مقادیر عددی از ورودی وجود داره ؟(استاندارد یا غیر استاندارد)
سوال دیگه ای که داشتم اینه بود که چرا گاهی اوقات با اینکه سرفایل تابع مورد نظر رو در برنامه ذکر نکردیم میتونیم از برخی از توابع اون سرفایل استفاده کنیم ؟ ایا برخی توابع در چندین سرفایل تعریف شده اند ؟
ممنون و موفق باشید
برنامه زیر رو نگاه کنید :
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
int i;
double *p = (double *) malloc (sizeof(double) * 3);
for(i=0; i<3; i++)
scanf_s("%g,",&p[i]);
for(i=0; i<3; i++)
printf("%g\n",*(p+i));
system("pause");
return 0;
}
ورودی :
1,2,3
خروجی:
-6.27744e+066
-6.27744e+066
-6.27744e+066
اما زمانی که در کد برنامه به جای مقادیر double از مقادیر int , char ,float استفاده می کنم برنامه به درستی کار می کنه اما زمانی که از نوع double استفاده می کنم خروجی برنامه به همین شکلی میشه که می بینید !
تقریبآ هر روشی رو که بلد بودم روی این سورس کد پیاده کردم اما نتیجه یکیه ، کم کم دارم به این نتیجه می رسم که تابع malloc با مقادیر double مشکل داره !
کامپایلری هم که ازش استفاده می کنم visual C++ 2008 SP1 هست.
ضمنآ ایا روشی غیر از استفاده از scanf برای خواندن مقادیر عددی از ورودی وجود داره ؟(استاندارد یا غیر استاندارد)
سوال دیگه ای که داشتم اینه بود که چرا گاهی اوقات با اینکه سرفایل تابع مورد نظر رو در برنامه ذکر نکردیم میتونیم از برخی از توابع اون سرفایل استفاده کنیم ؟ ایا برخی توابع در چندین سرفایل تعریف شده اند ؟
ممنون و موفق باشید