大一上期末C语言编程题
用公式 π/4 = 1-1/3+1/5-1/7……,编程序求π的近似值,直到最后一项的绝对值小于10-4为止。
#include
#include
main()
{float pi=0,n=1,i=1,g=1; //在后面计算中需对g的值进行运算,为什么还要初始化
while(fabs(g)>=1e-4)
{
pi+=g; //计算顺序的影响
n=n+2;
i=-i;
g=i/(float)n;
}
pi*=4;
printf("pi=%10.8f\n",pi); //用%10.8f 输出活用一般形式输出有无影响
}
用泰勒级数求e的近似值,直到最后一项小于1e-6为止。
# include
void main()
{int n=1;float a=1;
double e=0;long b=1;
for(;a>=1e-6;n++)
{e+=a;
b*=n;
a=(float)1/b;
}
printf("e=%lf\n",e);
}
求n的阶乘:
#include
int a(int n)
{
int b=1;
if(n>=1)
b=n*a(n-1);
return b;
}
void main()
{
int n,b;
scanf("%d",&n);
b=a(n);
printf("%d\n",b);
}
冒泡排序:
#include
#define N 10
main()
{int i,j,t;
int a[N]={0,12,8,7,6,5,4,3,2,1};
for(i=0;i
{for(j=N-1;j>i;j--)
if(a[j-1]>a[j])
{t=a[j-1];
a[j-1]=a[j];
a[j]=t;
}
}
printf("排序结果为:\n");
for(i=0;i<=N-1;i++)
printf("%d",a[i]);
}
指针:
计算字符段长度
#include
#define N 50
int slength(char a[])
{int count=0;
while(*a!='\0')
{count++;
a++;
}
return count;
}
void main()
{char a[N];
int x;
printf("输入一串字符:\n");
gets(a);
x=slength(a);
printf("字符串长度为%d\n",x);
}
#include
#define N 3
#define M 10
int fun(char a[][M],char b[])
{int find,i,j;
for(i=0;i
{find=1;
for(j=0;j
{if(a[i][j]!=b[j])
{find=0;break;}
}
if(find==1) break;
}
return find;
}
void main()
{char a[N][M],b[M];
int x,i;
printf("请输入3串字符\n");
for(i=0;i
{gets(a[i]);
fflush(stdin);
}
printf("请输入查找的字符串:\n");
gets(b);
x=fun(a,b);
if(x) printf("所查找的存在\n");
else printf("所查找的不存在\n");
}
字符串排序:
#include
#include
#include
#define N 6
void sort(char *a[],int n)
{char *t;
int i,j;
for(i=0;i
for(j=n-1;j>i;j--)
if(strcmp(a[j],a[j-1])>0)
{t=a[j-1];
a[j-1]=a[j];
a[j]=t;
}
}
void main()
{char *a[N];
int i;
for(i=0;i<=N-1;i++)
a[i]=(char*)malloc(10);
printf("请输入%d个字符串:\n",N);
for(i=0;i<=N-1;i+