sum=0
for i=-100 to 100
for j=-50 to 50
if 9i-9j=1 then
sum=sum+1
end if
next
next
#include <stdioh>
#include <mathh>
int getpara(char s[],int i)
{
int a=0,t=0;
char temp[32];
if (s[i]=='x')
{
a=1;
}
else
{
int k=0;
t=0;
while(s[i]!='x'&&s[i]!='=')
{
temp[t++]=s[(i)++];
}
while (t!=0)
{
a=a+(temp[t-1]-48)pow(10,k);
k++;
t--;
}
}
return a;
}
void main()
{
int a=0,b=0,c=0,i=0,t=0,signal;
char s[32],temp[32];
printf("请输入一个一元二次方程的标准形式,如2x^2+3x+9=0\n");
gets(s);
a=getpara(s,&i);
while (s[i]!='+'&&s[i]!='-')i++;
if(s[i]=='-')signal=1;
i++;
b=getpara(s,&i);
if(signal==1)b=0-b;
while(s[i]!='+'&&s[i]!='-')i++;
if(s[i]=='-')signal=1;
++i;
c=getpara(s,&i);
if(signal==1)c=0-c;
printf("a=%d,b=%d,c=%d\n",a,b,c);
}
你看看行不?
先判断然后分三种类型输出:1)b^2-4ac<0 无实数根 2)b^2-4ac=0 有一根 3)b^2-4ac>0 有两根结果式=-b+sqr(b^2-4ac)/2a =-b-sqr(b^2-4ac)/2a写程序的时候把a,b,c换成你题目中的即可
原来的程序为:(那位朋友帮我改一下)
#include "stdlibh"
#include "mathh"
#include "stdioh"
#define MAX 255
int Guass(a,b,n)
int n;
double a[],b[];
{
int js,l,k,i,j,is,p,q;
double d,t;
js=malloc(nsizeof(int));
l=1;
for (k=0;k<=n-2;k++)
{
d=00;
/下面是换主元部分,即从系数矩阵A的第K行,第K列之下的部分选出
绝对值最大的元,交换到对角线上。/
for (i=k;i<=n-1;i++)
for (j=k;j<=n-1;j++)
{
t=fabs(a[in+j]); /fabs()定义在mathh中,含义是求一个浮点数的绝对值。/
if (t>d) { d=t; js[k]=j; is=i;}
}
if (d+10==10) l=0; /主元为0/
/主元不为0的时候/
else
{
if (js[k]!=k)
for (i=0;i<=n-1;i++)
{
p=in+k; q=in+js[k];
t=a[p]; a[p]=a[q]; a[q]=t;
}
if (is!=k)
{
for (j=k;j<=n-1;j++)
{
p=kn+j; q=isn+j;
t=a[p]; a[p]=a[q]; a[q]=t;
}
t=b[k]; b[k]=b[is]; b[is]=t;
}
}
if (l==0)
{
free(js); printf("fail\n");
return(0);
}
d=a[kn+k];
/下面为归一化部分/
for (j=k+1;j<=n-1;j++)
{
p=kn+j; a[p]=a[p]/d;
}
b[k]=b[k]/d;
/下面为矩阵A,B消元部分/
for (i=k+1;i<=n-1;i++)
{
for (j=k+1;j<=n-1;j++)
{
p=in+j;
a[p]=a[p]-a[in+k]a[kn+j];
}
b[i]=b[i]-a[in+k]b[k];
}
}
d=a[(n-1)n+n-1];
/矩阵无解或有无限多解/
if (fabs(d)+10==10)
{
free(js); printf("该矩阵为奇异矩阵\n");
return(0);
}
b[n-1]=b[n-1]/d;
/下面为迭代消元/
for (i=n-2;i>=0;i--)
{
t=00;
for (j=i+1;j<=n-1;j++)
t=t+a[in+j]b[j];
b[i]=b[i]-t;
}
js[n-1]=n-1;
for (k=n-1;k>=0;k--)
if (js[k]!=k)
{ t=b[k]; b[k]=b[js[k]]; b[js[k]]=t;}
free(js);
return(1);
}
main()
{
int i,n;
double A[MAX];
double B[MAX];
clrscr();
puts("This is a program to solve N order linear equation set Ax=B");
puts("\n It use Guass Elimination Method to solve the equation set:");
puts("\n a(0,0)x0+a(0,1)x1+a(0,2)x2++a(0,n-1)xn-1=b0");
puts(" a(1,0)x0+a(1,1)x1+a(1,2)x2++a(1,n-1)xn-1=b1");
puts(" ");
puts(" a(n-1,0)x0+a(n-1,1)x1+a(n-1,2)x2++a(n-1,-1)xn-1=bn-1\n");
printf(" >> Please input the order n (>1): ");
scanf("%d",&n);
printf(" >> Please input the %d elements of matrix A(%d%d) one by one:\n",nn,n,n);
for(i=0;i<nn;i++)
scanf("%lf",&A[i]);
printf(" >> Please input the %d elements of matrix B(%d1) one by one:\n",n,n);
for(i=0;i<n;i++)
scanf("%lf",&B[i]);
if (Guass(A,B,n)!=0) /调用Guass消去,1为计算成功/
printf(" >> The solution of Ax=B is x(%d1):\n",n);
for (i=0;i<n;i++) /打印结果/
printf("x(%d)=%f ",i,B[i]);
puts("\n Press any key to quit");
getch();
}
以上就是关于VB程序设计题目:求方程9X—9Y=1,在|X|全部的内容,包括:VB程序设计题目:求方程9X—9Y=1,在|X|、c语言 程序设计 关于 二元一次方程、怎样用vb设计一个解方程的程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)