אהלן בעיה בשפת C עם WHILE - עמוד 2 - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

אהלן בעיה בשפת C עם WHILE


shai87

Recommended Posts

  • תגובות 35
  • נוצר
  • תגובה אחרונה

אבל אני רוצה שספציפית ברגע שיקישו ctrl+Z הפונקציה תסיים את התוכנית,

כל השאר להמשיך ולתת את הקלט,פלט.

ניסיתי לשים return אם 'v=='26 וזה לא יוצא מהתוכנית.....

קישור לתוכן
שתף באתרים אחרים

אה, עכשיו הבנתי על מה אתה מדבר. לא הבנתי אותך נכון קודם, מצטער.

הפונקציה scanf תמיד מחזירה את מספר האיברים שהיא קלטה, או את הקבוע EOF אם הקלט נגמר. יענו אם תעשה (scanf("%f%f",&a,&b והמשתמש אכן יכניס שני מספרים, אז היא אמורה להחזיר 2. אם הקלט מסתיים (נניח המשתמש לחץ על ctrl+Z) אז היא תחזיר EOF.

קישור לתוכן
שתף באתרים אחרים

ואיך אני עובד עם הEOF?

זאת אומרת איך אני מקבל אותו כדי לתת לו תנאי יציאה שאותו כבר הבנתי הודות לך :)

ואל תצטער גם אם אתה טועה או תטעה, התרומה שלך כאן היא משהו שלא רואים בכל פורום :xyxthumbs:

קישור לתוכן
שתף באתרים אחרים

הבעיה היא שאני לא יודע איפה להכניס אותו, לדוגמא אם הכנסתי את הwhile לכאן , הלולאה לא עובדת גם אם אכניס מספרים רגילים

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


int main()
{
int i=0;
double v=1,vx,vy,a,t=0.1,h,s,l,g=9.81;


while (v>0&&v<=100){

printf("\nEnter v <0.0-100.0 m/s> and a <0.0-90.0 degrees>:");
fflush(stdin);
scanf(" %lf%lf",&v,&a);

while (getchar()!=EOF){

if (v>0&&v<=100)
{
t=0.1;
g=9.81;
a=0.017453*a;
vx=(cos(a))*v;
vy=(sin(a))*v;
s=vx*t;
l=pow(t,2);
h=vy*t-(g*l/2);}
else h=-1;
for (t=0.1;h>0;t=t+0.1){
s=vx*t;
l=pow(t,2);
h=vy*t-(g*l/2);
printf("time is %.1f s is %.2f h is %.2f\n",t,s,h);
}

printf("\nFallen!\n");
}
printf("FINISH");
return ;

}
getch();
return 0;
}

קישור לתוכן
שתף באתרים אחרים

אני לא מבין איך אפשר להשוות את הקבוע הזה לscanf

מה שניסיתי זה

	printf("\nEnter v <0.0-100.0 m/s> and a <0.0-90.0 degrees>:");
fflush(stdin);
EOF=scanf("%lf%lf",&v,&a);
if (v==-1){
printf("FINISH");
return 0;}
שזה לא נכון..
או

	printf("\nEnter v <0.0-100.0 m/s> and a <0.0-90.0 degrees>:");
fflush(stdin);
scanf("%lf%lf",&v,&a)=EOF;
printf("FINISH");
return 0;}


איך בדיוק להשוות? יש שני משתנים בscanf

קישור לתוכן
שתף באתרים אחרים

scanf זו פונקציה. היא מחזירה תוצאה (ערך מטיפוס int). עם התוצאה הזו אפשר לעשות מה שאתה רוצה - לשמור אותה במשתנה, להשוות אותה למספרים אחרים וכו', בדיוק כמו שאתה משווה בין כל שני ביטויים אחרים.

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.


×
  • צור חדש...