ايران ويج

نسخه‌ی کامل: يه سئوال خيلي ابتدايي
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
سلام
تو سي پلاس پلاس مي خوام يه برنامه بنويسم كه سه تا عدد از ما بگيره (تا اينجاشو مي تونم )و عدد اول رو تقسيم بر دومي كنه (اينم بلدم)و جواب رو تا عدد سومي رقم با اعشار نشون بده
ممنون ميشم كمكم كنين
الگوریتمشو می نوسم خودت به کد تبدیل کن
a,b,cرا بخوان
ans=a/b
برای i از0 تا c انجام بده
a-=a/b}
a*=10
{ans+=a/b
ميثاق جان سلام
ممنون از لطفت اگه نتونستم بازم مزاحمت ميشم آخه من سي بلد نيستم
اگر منظورت نمايش يک عدد تا سه رقم اعشار هست به Help دستور printf مراجعهکن. کد زير براي کمک :
کد:
double a=4.334343445;
printf("%4.3f",a);
عدد 3 بيانگر تعداد رقم اعشار نمايش است.
سلام دوست گرامي
نه منظورم اين نيست
برنامه سه عدد از ورودي مي گيره و اولي رو بر دومي تقسيم ميكنه
تعداد اعشار جواب بايد به اندازه عدد سوم باشه
يعني اگر كاربر سه عدد 9و2و6 رو وارد كرد بايد 9 بر 2 تقسيم بشه و جواب تا 6 رقم اعشار نشون داده بشه و اگه اينقدر اعشار نداشت خود برنامه 0 بنويسه
با سلام
من خودم همیشه از راهنمای برنامه جواب سوالاتم رو پیدا می کنم.
شما می تونی از همون دستوری که آقای زارعی گفتن استفاده کنی مطمئناً کارت راه می افته. یکم تو راهنمای برنامه رو نگاه کن و نمونه های برنامه هارو.
امیدوارم موفق باشی
سلام
ممنون از كمكتون و نظرتون
تو راهنما رو چرخيدم طول ميدان هست كه من نميخوام و ديگه چيزي پيدا نكردم
اگه ميدونين كجاست ممنون ميشم كمكم كنين
كسي نميتونه كمكم كنه؟؟
این برنامه رو نگاه کن که ما با یک کلک کوچیک برات نوشتم . سه تا عدد میگیره که عدد سوم همون تعداد اعشار دلخواه شماست :

کد:
#include <stdio.h>
#include <conio.h>

void main()
{
    int a,b,c;
    char *str;
    clrscr();
    scanf("%d %d %d",&a,&b,&c);
    sprintf(str,"%s.%d%s","%",c,"f");
    printf(str,(float)a/b);
    getch();
}
سلام محمد آقا
دستت درد نكنه
راستش من تو سي از تازه كارها هم تازه كارترم
كاش زحمت ميكشيدي و يه توضيح كوچولو !! مي دادي تا بفهمم چي شده
راستشو بخواي قسمت اعشارش رو متوجه نشدم
ولي بازم ممنون از لطفت
همون طور که میدونی برای اینکه یک عدد رو با تعداد ارقام اعشار مشخص چاپ کنیم، نیاز داریم که اینو در پارامتر اول تابع printf اعلان کنیم . مثلا برای اینکه متغیر num رو با 5 رقم اعشار چاپ کنیم این رو باید بنویسیم :

کد:
printf("%.5f",num);

شما گفتی که برنامه باید طبق درخواست کاربر تعداد ارقام رو چاپ کنه . راهی وجود نداره مگه اینکه ما اون پارامتر اول تابع printf رو خودمون در زمان اجرا و با توجه به مقدار وارد شده توسط کاربر ، در حافظه بسازیم و بعد اونو به تابع printf ارسال کنیم . ساخت و فرمت کردن یک string در حافظه رو میشه با تابع sprintf انجام داد . بطور غیر رسمی میشه گفت که این تابع میتونه به شکل مستقیم هر مدل داده قابل قبول در زبان C رو به String تبدیل کنه . من هم دقیقا همین کار رو کردم . تابع sprintf من اینجا یک اشاره گر به یک رشته میگیره و بعد هم مثل printf پارامتر های فرمت کردن رو بهش میدی و در آخر هم مقدار ها رو بهش میدی تا تو خافظه بچینه . فرض کن شما 6 رو به عنوان تعداد رقم های اعشارت وارد کنی . تابع sprintf میداد و متغیر str ما رو به شکل زیرایجاد میکنه :

کد:
%.6f

حالا کافیه این رشته به عنوان پارامتر اول تابع printf پست بشه تا به اندازه 6 تا رقم اعشار برای شما چاپ بشه که اونم به شکل زیر در واقع انجام میشه :

کد:
printf("%.6f",(float)a/b);
صفحه‌ها: 1 2