עבור לתוכן

עזרה קטנה ב-C

Featured Replies

פורסם

אז ככה, בניתי מזמן מזמן תוכנה קטנה בשביל לפתור משוואות ריבועיות. עכשיו, אני רוצה להוסיף את האפשרות להציג את הפתרון גם ע"י פרמטרים (לדוג: X1=12a).


// 4.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}

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

int main()
{
int a, b, c;
int delta;
printf("please enter A, B, C: ");
scanf("%d%d%d", &a, &b, &c);

/*are they any solution?*/
if (a == 0 && b == 0 && c != 0)
{
printf("there is no solution!\n");
return 0;
}
/*find the number of solutions*/
else if (a == 0 && b == 0 && c == 0)
{
printf("infinite number of solutions\n");
return 0;
}
/*simple equasion?*/
else if( a == 0)
{
printf("x = %.2lf\n", (double) -c / b);
return 0;
}
/*find delta*/
delta = b*b - 4*a*c;
/*if delta is positive there two solutions*/
if(delta > 0)
{
printf("x1 = %.2lf\n", (-b + sqrt((double)delta))/(2*a));
printf("x2 = %.2lf\n", (-b - sqrt((double)delta))/(2*a));
return 0;
}
/*if delta is 0 there is one solution*/
else if(delta == 0)
{
printf("x = %.2lf\n", (double) -b/(2*a));
return 0;
}

/*if delta is negative, solution is a complex numb3r*/
else if(delta < 0)
{
printf("sorry, solution is a complex numb3r... \n");
return 0;
}
return 0;
}

מה אני צריך להוסיף בשביל שזה יעבוד?

פורסם

מכיוון שאתה רוצה לטפל בפרמטרים, אתה צריך להתחיל להשתמש במחרוזות, ולא בINT.

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

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

זה קצת יותר מסובך ממה שעשית עד עכשיו.

פורסם
  • מחבר

קצת? ::)

כבר המון זמן לא נגעתי ב-C. אני אשמח אם תגיד לי מה אני צריך לעשות בשביל שבסוף זה ישאל אם אני רוצה להכניס פרמטרים חדשים כך שאם אני עונה כן - זה יתחיל מהתחלה, ואם לא - זה יצא.

תודה :yelclap:

פורסם

אם אתה רוצה להפעיל את החישוב כמה פעמים עם מספרים אחרים כל פעם, פשוט תעטוף את כל הקוד שלך בWHILE.

אם אתה רוצה לעשות את מה ששאלת מקודם(12a) זה הרבה יותר מסובך.

ארכיון

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

דיונים חדשים