PDA

View Full Version : سوال: حلقه های تکرار در c



admiral-s
شنبه 12 فروردین 1391, 12:42 عصر
سلام.روز همگی بخیر.
من یه برنامه نوشتم که تعدادی نمره و تعداد واحد هر نمره رو میگیره و معدل و تعداد واحد های اخذ شده و تعداد واحد های پاس شده رو چاپ میکنه.
اما برای اینکه حلقه ی for تکرار شه باید 2بار enter زد و در ضمن برای اینکه محسبات انجام شه باید یه عدد همینجوری داد.میخوام یه enter باشه برای اینکه حلقه تکرار شه و دوباره نمره و واحد بخواد و یه enter هم زدیم برنامه محاسبات رو انجام بده. اما نمیتونم.
اگه میشه لطفا" راهنماییم کنید . مبتدی هستم.



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

int main()
{
int j,n=0,s=0,p=0;
float i,sum=0.0,ave;
clrscr();
for(;;){
printf("nomre va tedade vahed ra vared konid:");
scanf("%f%d",&i,&j);
if (i>=10)
p+=j;
sum+=i;
n++;
s+=j;
while(getche() !='\r') {
ave=sum/s;
printf("\n\tave=%f",ave);
printf("\n\ttedade vahed haye akhz shode=%d",s);
printf("\n\ttedade vahed haye pass shode=%d",p);

}//end of while
}
getch();
return 0;

Mahdi1001
شنبه 12 فروردین 1391, 15:12 عصر
سلام
این کد کمی تغییر دادم الان عدد اول (یعنی نمره ) -1 وارد کنین محاسبات رو انجام میده و با زدن یک دکمه برنامه تمام میشه. تا وقتی هم که -1 نزدین می تونین نمره و واحد اضافه کنید.



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

int main()
{
int j,n=0,s=0,p=0;
float i,sum=0.0,ave;
clrscr();
for(;;){
printf("nomre va tedade vahed ra vared konid:");
scanf("%f",&i);
if(i==-1)
break;
scanf("%d",&j);
if (i>=10)
p+=j;
sum+=i;
n++;
s+=j;

}

ave=sum/s;
printf("\n\tave=%f",ave);
printf("\n\ttedade vahed haye akhz shode=%d",s);
printf("\n\ttedade vahed haye pass shode=%d",p);


getch();
return 0;

admiral-s
شنبه 12 فروردین 1391, 16:06 عصر
ما کتاب جعفرنژادو میخونیم. هنوز به دستور break نرسیدیم. الان که شما کدو تغییر دادین رفتم از کتاب پیداش کردم متوجه شدم.

ممنون

Mahdi1001
شنبه 12 فروردین 1391, 16:08 عصر
خواهش می کنم،
موفق باشید