PDA

نسخه کامل مشاهده نسخه کامل : برنامه با c فقط با استفاده از while



ahamid555
28-03-2013, 14:44
سلام
استادمون تمرین داده گفته برنامه ای بنویسید که 10 عدد گرفته و تشخیص دهد که :
1- عدد اول است یا نه
2-عدد کامل هست یا نه
3- مربع کامل است یا نه
4- در دنباله فیبوناتچی هست یا نه
ولی فقط با استفاده از مطالبی که تا اینجا خوندیم یعنی while نه for و نه if
من قسمت 1و2 رو بدون if نمیتونم بنویسم شما میتونید؟قسمت 3و4 هم تا یه جایی میتونم :


#include<stdio.h>
main()
{
int f1, f2, f3, x;
scanf("%d",&x);
f1=0;
f2=1;
f3=1;
while(f1<=x&&f2<=x&&f3<x)
{
f1=f2+f3;
f2=f1+f3;
f3=f1+f2;
}
if (x==f1|x==f2|x==f3)
printf("%d is F",x);
else
printf("%d is not F",x);
}

#include<stdio.h>
#include<math.h>
main()
{
int x,s;
scanf("%d",&x);
s=sqrt(x);
if (x==s*s)
printf("%d is S",x);
else
printf("%d is not S",x);
}


چجوری میتونم قسمتی که if استفاده شده رو با while بنویسم؟

hermione
30-03-2013, 19:44
اول بگم من با نحوه کدنویسیه c آشنایی ندارم ولی برای تبدیل while به if کافیه آخر بلوک while رو یک مقدار False بدیم تا فقط یکبار اجرا بشه .

مثلا توی پایتون به این صورت :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

خب این یه مثال ساده بود . while تا زمانی اجرا میشه که عبارت جلوش True باشه . اینجوری فقط یکبار اجرا میشه

برای اینکه دقیقا مثل if عمل کنه با اون شرط دلخواهتون باید and کنید .

که اگه اون شرط False بود کلا اجرا نشه while
و اگه اون شرط درست بود فقط 1 بار اجرا بشه while ( دقیقا مثل if میشه )
یه مثال کامل تبدیل بخوام بزنم اینجور میشه :



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
تبدیل میشه به این

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید