当前位置:首页 » 编程语言 » 自解c语言

自解c语言

发布时间: 2025-01-24 19:27:08

1. 求一个用c语言编写的能解二元一次方程组的程序,希望不要是复制粘贴别处的

/*一.关于自动解一元二次方程*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
double a,b,c,del,k;
s:
printf ("a=");scanf ("%lf",&a);
printf ("b=");scanf ("%lf",&b);
printf ("c=");scanf ("%lf",&c);
del=pow (b,2)-4*a*c;
if (a==0) if (b==0&&c==0) printf ("If you want,it can be anything~");
else if (b==0&&c!=0) {printf ("Get out,don't ask me! ");exit (0);}
else printf ("%.0lfX+%.0lf=0 X=%lf",b,c,-c/b);//a为0时为一元一次方程
else if (0==del) printf ("有唯一解:%lfX^2+%lfX+%lf=0 X=%lf",a,b,c,-b/(2*a));//del等于0
else if (0>del) printf ("无实数解!");
else printf ("%lfX^2+%lfX+%lf=0 X1=%lf X2=%lf",a,b,c,(-b+sqrt(del))/2*a,(-b-sqrt(del))/2*a);
printf (" continue?");
scanf ("%d",&k);if (k==1) goto s;
return 0;
}

2. 用c语言编程求线性方程组的解

给,下面的代码已经编译运行确认,肯定好用了,试试吧:)
#include<conio.h>
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#define
number
20
#define
esc
0x1b
#define
enter
0x0d
float
a[number][number+1]
,ark;
int
flag,n;
void
exchange(int
r,int
k);
float
max(int
k);
void
message();
int
main()
{
float
x[number];
/*此数组用于存放方程解*/
int
k,i,j;
char
celect;
system("cls");
printf("\n用gauss列主元消元法解线性方程组");
printf("\n1.解方程组请按enter.");
printf("\n2.退出程式请按esc.");
celect=getch();
if(celect==esc)
exit(0);
printf("\n
输入方程组的维数:n=");
scanf("%d",&n);
printf("\n现在输入系数矩阵a和向量b:");
for(i=1;i<=n;i++)
{
printf("\n请输入a%d1--a%d%d系数和向量b%d:
\n",i,i,n,i);
/*实现将每一行中的系数和向量一次性输入,数之间用空格格开,输完后回车确定*/
for(j=1;j<=n+1;j++)
/*将刚才输入的数存入数组*/
scanf("%f",&a[i][j]);
}
for(k=1;k<=n-1;k++)
{
ark=max(k);
if(ark==0)
/*判断方程是否为线性方程,即是否合法*/
{
printf("\n此方程组不合法!");message();
}
else
if(flag!=k)
exchange(flag,k);
for(i=k+1;i<=n;i++)
for(j=k+1;j<=n+1;j++)
a[i][j]=a[i][j]-a[k][j]*a[i][k]/a[k][k];
}
x[n]=a[n][n+1]/a[n][n];
for(
k=n-1;k>=1;k--)
{
float
me=0;
for(j=k+1;j<=n;j++)
{
me=me+a[k][j]*x[j];
}
x[k]=(a[k][n+1]-me)/a[k][k];
}
for(i=1;i<=n;i++)
{
printf("\nx%d=%f",i,x[i]);
}
message();
getch();
return
1;
}
void
exchange(int
r,int
k)
/*交换行的矩函数*/
{
int
i;
for(i=1;i<=n+1;i++)
a[0][i]=a[r][i];
for(i=1;i<=n+1;i++)
a[r][i]=a[k][i];
for(i=1;i<=n+1;i++)
a[k][i]=a[0][i];
}
float
max(int
k)
/*比校系数大小的函数*/
{
int
i;
float
temp=0;
for(i=k;i<=n;i++)
if(fabs(a[i][k])>temp)
{
temp=fabs(a[i][k]);
flag=i;
}
return
temp;
}
void
message()
/*实现菜单选择的函数*/
{
printf("\n
继续运算按
enter
,退出程式按
esc!");
switch(getch())
{
case
enter:
main();
case
esc:
exit(0);
default:{printf("\n不合法的输入!");message();}
}
}

3. 用C语言编写二分法解方程程序

#include <stdio.h>
#include <math.h>
float getvalue(float x)
{
return x*x*x+4*x*x-10;
}

void main()
{

float a=1,b=1.5,c;
c=(a+b)/2;
while(fabs(getvalue(c))>0.00001 && fabs(a-b)>0.00001){
if(getvalue(c)*getvalue(b)<0) a=c;
if(getvalue(a)*getvalue(c)<0) b=c;
c=(a+b)/2;
}
printf("%0.3f\n",c);
}

4. 用C语言实现从指定的地址下载一个文件吗,并自解压

有两种实现方式
1)就是用system来运行命令,比如system("wget http://abc.com/test.rar"); 然后system("unrar x test.rr");。。。。其实这种方式就和写脚本差不多
2)如果完全自己编程,那么就要用到各种库文件了。比如下载你可以使用libcurl,rar解压你可以用libunrar,输入用户存储路径,你用scanf输入,然后根据系统的不同(windows或者linux)调用系统api来创建目录,显示下载进度,你可以先获得该文件的大小,然后根据已下载的数据量和文件大小计算进度
你确定要集体的代码吗?

热点内容
打疫苗的地方wifi密码是多少 发布:2025-01-25 02:22:35 浏览:467
小学不编程 发布:2025-01-25 02:21:07 浏览:149
编程班的名称 发布:2025-01-25 02:15:57 浏览:147
root锁机序列号算法 发布:2025-01-25 02:14:26 浏览:152
广州万科海上传奇 发布:2025-01-25 02:13:48 浏览:562
空调压缩机结霜了 发布:2025-01-25 02:01:20 浏览:130
怎么给路由器设置代理服务器 发布:2025-01-25 01:54:49 浏览:209
sqlserver的不等于 发布:2025-01-25 01:51:47 浏览:274
ftpup上传三个文件 发布:2025-01-25 01:38:15 浏览:762
录音加密忘记 发布:2025-01-25 01:37:29 浏览:501