C语言写二次函数

Python08

C语言写二次函数,第1张

首先你已经很清楚的说明了你这个程序是用C语言写二次函数的,而当a=0时,就不是二次函数了,应该按照一次函数来进行计算,否则 一个数除以0就没有意义了.~

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

int main()

{

float a,b,c

float x1,x2,m

printf("input number a=:")

scanf("%f",&a)

printf("input number b=:")

scanf("%f",&b)

printf("input number c=:")

scanf("%f",&c)

if(a==0)

printf("一根:%f\n",c*(-1)/b)

else if(a==0&&b==0)

printf("无意义!")

else

{

m=b*b-4*a*c

if(m>0)

{

printf("两根\n")

printf("x1=%f\n",(-b+sqrt(m))/(2*a))

printf("x2=%f\n",(-b-sqrt(m))/(2*a))

}

else if(m==0)

printf("x1=x2=%f\n",x1)

}

else

printf("无实根\n")

}

return 0

}

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

int main()

{

float a,b,c

float x1,x2,m

printf("input number a=:")

scanf("%f",&a)

printf("input number b=:")

scanf("%f",&b)

printf("input number c=:")

scanf("%f",&c)

m=b*b-4*a*c

if(m>=0&&a!=0){

if(m>0){

x1=(-b+sqrt(m))/(2*a)

x2=(-b-sqrt(m))/(2*a)

printf("两根\n")

printf("x1=%f\n",x1)

printf("x2=%f\n",x2)}

else

printf("一根\n")

printf("x1=x2=%f\n",x1)}

else

{

if(a=0 &&b!=0)printf("根是x=-c/b")

if(a=0&&b=0) printf("为常函数");

if(a!=0)printf("无根\n")

}

system("PAUSE")

return 0}

#include <windows.h>

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM)

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,

PSTR szCmdLine, int iCmdShow)

{

static TCHAR szAppName[]=TEXT("二次函数")

HWND         hwnd

MSG          msg

WNDCLASS     wndclass

wndclass.style=CS_HREDRAW|CS_VREDRAW

wndclass.lpfnWndProc=WndProc

wndclass.cbClsExtra=0

wndclass.cbWndExtra=0

wndclass.hInstance=hInstance

wndclass.hIcon=LoadIcon(NULL, IDI_APPLICATION)

wndclass.hCursor=LoadCursor(NULL, IDC_ARROW)

wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH)

wndclass.lpszMenuName=NULL

wndclass.lpszClassName=szAppName

if (!RegisterClass(&wndclass))

{

MessageBox(NULL, TEXT("Error"),

szAppName, MB_ICONERROR)

return 0

}

hwnd=CreateWindow(szAppName, TEXT("二次函数"),

WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT, CW_USEDEFAULT,

CW_USEDEFAULT, CW_USEDEFAULT,

NULL, NULL, hInstance, NULL)

ShowWindow(hwnd, iCmdShow)

UpdateWindow(hwnd)

while (GetMessage(&msg, NULL, 0, 0))

{

TranslateMessage(&msg)

DispatchMessage(&msg)

}

return msg.wParam

}

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)

{

static int  cxClient, cyClient

const static int n=1000

HDC         hdc

int         i

PAINTSTRUCT ps

POINT       apt[n]

switch (message)

{

case WM_SIZE:

cxClient=LOWORD(lParam)

cyClient=HIWORD(lParam)

return 0

case WM_PAINT:

hdc=BeginPaint(hwnd, &ps)

MoveToEx(hdc, 0, cyClient/2, NULL)

LineTo(hdc, cxClient, cyClient/2)

MoveToEx(hdc, cxClient/2, 0, NULL)

LineTo(hdc, cxClient/2, cyClient)

for (i=0 i < n++i)

{

apt[i].x=cxClient/4+i apt[i].y=cyClient-(cyClient/2-i)*(cyClient/2-i)/300-cyClient/2+100

}

Polyline(hdc, apt, n)

return 0

case WM_DESTROY:

PostQuitMessage(0)

return 0

}

return DefWindowProc(hwnd, message, wParam, lParam)

}