• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

c语言小程序集锦

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

程序1:已知y=2*x^2 - 3*x^4 + 6*x^5 - 4*x + 50,求x=0 到 x=2 以步长为0.2递增时y的最小值和最大值。

知识点:

pow(计算次方值)   
相关函数   exp,log,log10 
表头文件   #include<math.h> 
定义函数   double pow(double x,double y); 
函数说明   pow()用来计算以x为底的y次方值,即xy值,然后将结果返回。 
返回值   返回x的y次方计算结果。 
错误代码   EDOM 参数x为负数且参数y不是整数。 
附加说明   使用GCC编译时请加入-lm。 
代码:

//程序1;

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

float y(float x);

float y(float x)
{
return 2*x*x - 3*pow(x,4.) + 6*pow(x,5.) - 4*x + 50;
}

int main()
{
float x;
float miny;
float maxy;
x
=0;
miny
= y(x);
maxy
= y(x);
while (x<=2)
{
x
+= 0.2;
if (miny > y(x))
{
miny
= y(x);
}
if (maxy < y(x))
{
maxy
= y(x);
}
}
printf(
"y的最小值为:%f\ny的最大值为:%f\n", miny, maxy);
return 1;
}

运行结果:

[hanxi@hanxi-workstation Documents]$ gcc -lm code1.c
[hanxi@hanxi
-workstation Documents]$ ./a.out
y的最小值为:
48.397758
y的最大值为:
194.000092

程序2:画y=sin(x)和y=x/3在[-pi/2,pi/2]的图像

没有画出坐标,直接画图像的形状,采用坐标描点。分y>0和y<0两种情况,y>0时,y=x/3在y=sin(x)后面。y<0时相反

代码:

//程序2;
#include<stdio.h>
#include
<math.h>
int main()
{
double y;
int x,m,k;
for(y=1;y>=-1;y-=0.1) //y为列方向,值从1到-1,步长为0.1
{
m
=asin(y)*10; //计算出y对应的弧度m,乘以10为图形放大倍数
k=3*y*10; //计算y=x/3对应的x,同样将图形放大10倍
if (y>0)//[0,PI/2]
{
for(x=1;x<31+m;x++) printf(" ");
printf(
"*");
for(;x<31+k; x++) printf(" ");
printf(
"*\n");
}
else//[-PI/2,0]
{
for (x=1; x < 31+k;x++) printf(" ");
printf(
"*");
for(;x<31+m;x++) printf(" ");
printf(
"*\n");
}
}
return 0;
}

运行结果:

[hanxi@hanxi-workstation Documents]$ gcc -lm code2.c
[hanxi@hanxi
-workstation Documents]$ ./a.out
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
**
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *

程序3:求一个方阵对角线上最小值

思想:将矩阵存在二维数组a[m][n]中,比较对角线上的元素就是在下标i=j时比较,从而选出最小值

代码:

//程序3:求一个方阵对角线上最小值
#include <stdio.h>

int main()
{
int a[5][5];
int i,j,min;
for (i = 0; i<5; i++)
{
for (j=0; j<5; j++)
{
printf(
"a[%d][%d]=",i,j);
scanf(
"%d",&a[i][j]);
}
}
min
=a[0][0];
for (i = 0; i<5; i++)
{
if (min>a[i][i])
{
min
=a[i][i];
}
}
printf(
"对角线最小值为:%d\n", min);
return 1;
}

测试结果:

[hanxi@hanxi-workstation Documents]$ gcc -lm code3.c
[hanxi@hanxi
-workstation Documents]$ ./a.out
a[
0][0]=2
a[
0][1]=3
a[
0][2]=6
a[
0][3]=5
a[
0][4]=9
a[
1][0]=6
a[
1][1]=3
a[
1][2]=5
a[
1][3]=2
a[
1][4]=1
a[
2][0]=4
a[
2][1]=5
a[
2][2]=9
a[
2][3]=8
a[
2][4]=5
a[
3][0]=7
a[
3][1]=0
a[
3][2]=2
a[
3][3]=1
a[
3][4]=3
a[
4][0]=6
a[
4][1]=8
a[
4][2]=5
a[
4][3]=4
a[
4][4]=9
对角线最小值为:
1

程序4:设计一个函数,使用递归法求x^n,并在住函数中调用

代码:

//程序4:设计一个函数,使用递归法求x^n,并在住函数中调用
#include <stdio.h>

float fun(float x, int n)
{
if (n!=1)
{
return x*fun(x,n-1);
}
else
{
return x;
}
}

int main()
{
float x;
int n;
printf(
"请输入数据\nx=");
scanf(
"%f",&x);
printf(
"n=");
scanf(
"%d", &n);
printf(
"x^n=%f\n",fun(x,n));
return 1;
}

测试结果:

[hanxi@hanxi-workstation Documents]$ ./a.out
请输入数据
x
=5
n
=2
x
^n=25.000000
[hanxi@hanxi
-workstation Documents]$ ./a.out
请输入数据
x
=6.2
n
=6
x
^n=56800.225100

程序5:设计一个函数void sear(int a[], int n);n为数组a的长度。 通过使用全局变量的方法求:tave(数组a中正数的平均值),nave(数组a中负数的平均值)

代码:

//程序5:设计一个函数void sear(int a[], int n);n为数组a的长度。 通过使用全局变量的方法求:tave(数组a中正数的平均值),nave(数组a中负数的平均值)

#include
<stdio.h>

int tave=0,nave=0;

void sear(int a[], int n)
{
int i;
int tsum=0,t_n=0,nsum=0,n_n=0;
for (i=0; i<n;i++)
{
if (a[i]>0)
{
tsum
+= a[i];
t_n
++;
}
else
{
nsum
+= a[i];
n_n
++;
}
}
if (t_n!=0) tave=tsum/t_n;
if (n_n!=0) nave=nsum/n_n;
}

int main()
{
int a[10];
int i;
printf(
"输入数据\n");
for (i=0; i<10; i++)
{
printf(
"a[%d]=",i);
scanf(
"%d", &a[i]);
}
sear(a,
10);
printf(
"结果: \n tave=%d \n nave=%d \n",tave,nave);
return 1;
}

测试结果:

[hanxi@hanxi-workstation Documents]$ ./a.out
输入数据
a[
0]=5
a[
1]=2
a[
2]=2
a[
3]=25
a[
4]=5
a[
5]=2
a[
6]=-6
a[
7]=5
a[
8]=2
a[
9]=1
结果:
tave
=5
nave
=-6

程序6:求a*x^2+b*x+c=0的根

代码:

//求a*x^2+b*x+c=0的根

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

int main()
{
float a,b,c;
float tmp;

printf(
"输入数据\na=");
scanf(
"%f",&a);
printf(
"b=");
scanf(
"%f", &b);
printf(
"c=");
scanf(
"%f", &c);

tmp
=b*b-4*a*c;

if (tmp>0)
{
printf(
"方程的根为:%f和%f\n", (-b+sqrt(tmp))/2,(-b-sqrt(tmp))/2);
}
if (tmp==0)
{
printf(
"方程的根为:%f\n", -b/2);
}
if (tmp<0)
{
printf(
"方程无解\n");
}
return 1;
}

测试结果:

[hanxi@hanxi-workstation Documents]$ gcc -lm code6.c
[hanxi@hanxi
-workstation Documents]$ ./a.out
输入数据
a
=2
b
=2
c
=2
方程无解
[hanxi@hanxi
-workstation Documents]$ ./a.out
输入数据
a
=1
b
=0
c
=0
方程的根为:
-0.000000
[hanxi@hanxi
-workstation Documents]$ ./a.out
输入数据
a
=58
b
=5
c
=4
方程无解
[hanxi@hanxi
-workstation Documents]$ ./a.out
输入数据
a
=2
b
=56
c
=169
方程的根为:
-6.881288和-49.118712

程序7:设计函数output()和函数input();使功能和puts()和gets()相同

代码:

//程序7:设计函数output()和函数input();使功能和puts()和gets()相同

#include
<stdio.h>
#include
<stdlib.h>
#include
<string.h>

void output(char a[])
{
int i;
for (i=0; i<strlen(a); i++)
{
putchar(a[i]);
}
printf(
"\n");
}

int main()
{
int i;
char a[256]="als;ajasdlkfweiondvlj阿斯疯狂疯狂sdfdjf";
output(a);
}

测试结果:

[hanxi@hanxi-workstation Documents]$ gcc -lm code7.c
[hanxi@hanxi
-workstation Documents]$ ./a.out
als;ajasdlkfweiondvlj阿斯疯狂疯狂sdfdjf

程序8:求二维数组中每行元素的平均值

代码:

//程序8:求二维数组中每行元素的平均值

#include
<stdio.h>

int main()
{
float a[10][10],sum;
int i,j;
for (i=0; i<10; i++)//传入数据
{
for (j=0; j<10; j++)
{
a[i][j]
= (i+2)*(j+rand())*

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
支付宝小程序添加H5域名配置失败原因发布时间:2022-07-18
下一篇:
小程序悬浮按钮进入内页发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap