PDA

View Full Version : سوال: راهنمایی راجع به switch



admiral-s
شنبه 12 فروردین 1391, 21:22 عصر
سلام.
یه برنامه نوشتم که یک عدد از کاربر دریافت کند و از اولین عدد مضرب 4 که بزرگتر یا مساوي عدد ورودي است تا اولین عدد مضرب 7 بزرگتر از آن را چاپ کند (مثال: براي ورودي 2 خروجی 4 5 6 7 و براي ورودي 28 خروجی 28 29 30 31 32 33 34 35 رو چاپ کنه )

اما دوتا error میده که اصلا" سر در نمیارم چیه . لطفا کمک کنید اصلاحش کنم.



#include <stdio.h>
#include <conio.h>

void main()
{
int number;
int con=1;
scanf("%d",&number);
do
{
int r=number%4;
switch(r)
{
case 0:
con=0;

case 0 :
case 2 :
case 3 :
break;
con;
}
number++;
}
while(!con);
{
do
{
printf("%d ",++number);
}while(number%7);
printf("%d ",number);
}
getch();

}

rezaricky
شنبه 12 فروردین 1391, 21:42 عصر
مقدار برگشتی تابع اصلی باید از نوع int باشد
داخل سوییچ ، case 0 رو دو بار نوشتی

admiral-s
شنبه 12 فروردین 1391, 22:08 عصر
اینکارو کردم .
اما وقتی مثلا" 2 رو وارد میکنم میده 4 5 6 7 7
واسه ی 10 , 12 13 14 14
یعنی آخرین عدد رو دوبار مینویسه.
و وقتی 28 رو میزنی کلا" هنگ میکنه!!!!!

rezaricky
شنبه 12 فروردین 1391, 23:43 عصر
از این کد استفاده کن ، تا هنگ نکنه

#include <stdio.h>
#include <conio.h>

int main()
{
int number,r1,r2,dest,src;

scanf("%d",&number);
r1 = number % 4;
r2 = number % 7;

if (r1 ==0)
src=number;
else
src = (number +4) -r1;

dest = (number +7) - r2;

while(src <=dest)
{
printf("%d ",src);
src++;
}

getch();
return 0;
}

admiral-s
شنبه 12 فروردین 1391, 23:47 عصر
نه میخوام بدنه اصلی کد همون باشه

rezaricky
یک شنبه 13 فروردین 1391, 00:51 صبح
#include <stdio.h>
#include <conio.h>

int main()
{
int number;
int con=1;

scanf("%d",&number);

do
{
int r=number%4;
if (r)
number++;
else
con=0;

}
while(con);





do
{
printf("%d ",number);
number++;
}
while(number %7);

printf("%d ",number);


getch();
return 0;

}