X
تبلیغات
حل تمرینات زبان c - ادامه ی حل تمرینات زبان c فصل 3
15ـ برنامهای بنویسید که با استفاده از حلقههای تو در تو خروجی زیر را تولید کند.
$$$$$$
$$$$$$
$$$$$$
$$$$$$

در این مسئله به دو حلقه تو در تو نیازمندیم، حلقهی بیرونی مشخص کننده سطرهای خروجی و حلقهی داخلی مشخص کنندهی تعداد $ها در هر سطر میباشد.
i: شمارنده حلقهی خارجی

j: شمارنده حلقهی داخل



 #include≤stdio.h>
#include≤conio.h>
int main()
{
int i, j;
clrscr();
for(i=1;i<=4;i++)
{
printf("\n");
for(j=1;j<=6;j++)
printf("$");
}
getch();
return 0;
16ـ برنامهای بنویسید که دو مقدار اعشاری را از ورودی خوانده و تفاضل حاصلضرب و حاصل تقسیم آنها را محاسبه کرده و به خروجی ببرد. برنامه وقتی خاتمه مییابد که هر دو عدد اعشاری صفر باشند.

جواب:
x: عدد اعشاری اول
y: عدد اعشاری دوم
m: ضرب دو عدد اعشاری
n: تقسیم دو عدد اعشاری:
#include≤stdio.h>
#include≤conio.h>
int main()
{
float x, y, m, n, s;
clrscr();
for(;;)
{
printf("\n 2 float number:(you can select 0 and 0 for Quit\n");
scanf("%f%f",&x,&y);
if(x==0 && y==0)
break;
else
{m = x * y;n = x / y;
s = m - n;
printf("\n (%f*%f) - (%f/%f) = %f",x,y,x,y,s);
}
}
getch();
return 0;

17ـ برنامهای بنویسید که یک عدد اعشاری مثل 643.21 را خوانده، وارون آن را بیابد. وارون این عدد 12.346 است.

جواب:

#include≤stdio.h>
#include≤conio.h>
#include≤math.h>
int main()
{
double j, x, xx, a;
long int i;
clrscr();
printf("\n enter float number: ");
scanf("%lf",&x);
a = 0;
i = -1;
xx = x;
while (floor(xx)>0)
{
a+=(((long int)floor(xx)%10)*pow(10,i));
xx/=10;
i--;
}
i = 0;
j = (long int)x;
while (x!=j)
{
x=x*10;
a+=(((long int)floor(x)%10)*pow(10,i));
i++;
j=(long int)x;
}
printf("\n number is %f",a);
getch();
return 0;
18ـ برنامهای بنویسید که یک عدد اعشاری را از ورودی خوانده، هر یک از قسمتهای صحیح و اعشاری آنرا به صورت یک عدد صحیح به خروجی ببرد. به عنوان مثال، عدد 13.42 به صورت دو عدد صحیح 13 و 42 به خروجی ببرد.

جواب:


#include≤stdio.h>
#include≤conio.h>
#include≤math.h>
int main()
{
float x, r;
int m;
clrscr();
printf("\n enter a float number: ");
scanf("%f",&x);
m = (int)x;
r = x - m;
printf("\n %f = %d + %f",x,m,r);
while (r - floor(r) != 0)r = 10 * r;
printf("\n %1.0f",r);
getch();
return 0;

نکته:
در حل دو مسئله آخر از تابعی به نام تابع floor() استفاده کردیم. این تابع بزرگترین مقدار صحیح کوچکتر یا مساوی یک عدد را که به صورت double نمایش داده میشود محاسبه میکند و الگوی آن به صورت زیر است:
Double floor (double num)
اگر مقدار 1.02 به عنوان آرگومان تابع باشد نتیجه حاصل برابر با 1.0 و اگر عدد -1.20 به عنوان آرگومان تابع باشد نتیجهی حاصل برابر با -1.0 خواهد بود. دستور زیر عدد 10 را به عنوان نتیجه عمل چاپ میکند:
printf(“%f”,floor(10.9));
این تابع جزء توابع ریاضی میباشد بنابراین برای استفاده از این تابع و توابع ریاضی دیگر باید فایل سرآیند تعریف شود.


تاريخ : شنبه 1390/03/07 | 17:0 | نویسنده : سحر |
  • پی سی سون
  • حاوی