1.用π/4≈1-1/3+1/5-1/7+…公式求π的近似值,直到某一项的绝对值小于10-6为止
#include <stdio.h>
#include<math.h>
void main()
{ int s;
float n,t,pi;
t=1;pi=0;n=1.0;s=1;
while(fabs(t)>1e-6)
{ pi=pi+t;
n=n+2;
s=-s;
t=s/n;
}
pi=pi*4;
printf("pi=%10.6f\n",pi);
}
2.求Fibonacci数列前40个数
#include <stdio.h>
void main()
{
long int f1,f2;
int i;
f1=1;f2=1;
for(i=1; i<=20; i++)
{ printf("%12ld %12ld ",f1,f2);
if(i%2==0) printf("\n");
f1=f1+f2;
f2=f2+f1;
}
}
3.删除字符串中的数字字符,以‘#’作为字符串的结束标志
#include <stdio.h>
#include <string.h>
fun(char *p)
{
char a[100];
int i,j,k;
for(i=0,j=0;*(p+i)!='#';i++)
{
if(*(p+i)<'0'||*(p+i)>'9') /*(((s1[i]>='a')&&(s1[i]<='z'))||((s1[i]>='A')&&(s1[i]<='Z')))*/
{
a[j++]=*(p+i);
k=j;
}
}
a[k]='\0';
strcpy(p,a);
}
void main()
{
char s1[100];
printf("请输入随意字符:\n");
gets(s1);
fun(s1);
puts(s1);
printf("\n");
}
4.输出10000—20000之间个位数是7的素数个数,并将其中最大的素数返回。
#include <stdio.h>
#include <math.h>
void main()
{
int i,j,n,word=0,max;
for(i=10000;i<=20000;i++)
{
if(i%10==7)
{
n=sqrt(i);
for(j=2;j<=n;j++)
{
if(i%j==0)
break;
}
if(j>=n+1)
{
word=word+1;
max=i;
}
}
}
printf("这样的素数有%dc++求字符串长度个,其中最大的一个是%d.\n",word,max);
}
5.统计输入英文字母的个数
#include <stdio.h>
void fun(char *tt,int pp[])
{
int i;
for(i=0;i<26;i++)
pp[i]=0;
for(;*tt!='\0';tt++)
(pp[*tt-97])++;
}
void main()
{
char aa[1000];
int bb[26],k;
printf("\nplease enter a char string:\n");
scanf("%s",aa);
fun(aa,bb);
for(k=0;k<26;k++)
printf("%d",bb[k]);
printf("\n");
}
6.矩阵主对角线元素平方之和
#include <stdio.h>
int fun(int x[3][3],int y)
{
int i,j,k;
y=0;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
if(i==j)
k=x[i][j]*x[i][j];
y=y+k;
}
return(y);
}
void main()
{
int i,j;
int a[3][3],n;
printf("请输入一个3*3矩阵:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);
printf("%4d",a[i][j]);
}
printf("\n");
}
n=fun(a,n);
printf("对角线平方和为:%d\n",n);
}
7.字符串倒序
#include <stdio.h>
#include <string.h>
void fun (char *s, char *t)
{
int i,k;
int s1=strlen(s);
/*
for(i=0;i<=s1;i++)
{
*(t+i)=*(s+i);
k=i; 必须在循环体内赋值
}
*/
strcpy(t,s);
for(k=s1;k<=2*s1-1;k++)
t[k]=s[2*s1-1-k];
t[2*s1]='\0';
}
void main()
{ char s[100], t[100];
printf("\nPlease enter string s:"); scanf("%s", s);
fun(s, t);
printf("The result is: %s\n", t);
}
8.将字符串中的字母变成其后的字母,其中z变成a , Z变成A
程序如下:
#include <stdio.h>
#include <string.h>
void main()
{
void fun(char a[100],char b[100]);
printf("\n请输入一个字符串:\n");
char str[100];char p[100];
gets(str);
fun(str,p);
puts(p);
}
void fun(char a[100],char b[100])
{
int i,k;
for(i=0;*(a+i)!='!';i++)
{
if((*(a+i)>='a'&&*(a+i)<='z')||(*(a+i)>='A'&&*(a+i)<='Z'))
{
if(*(a+i)=='z')
*(a+i)='a';
else if(*(a+i)=='Z')
*(a+i)='A';
else
*(a+i)=*(a+i)+1;
}
}
*(a+i)='\0';
strcpy(b,a);
}
9.非零整数的最大公约数
#include <stdio.h>
void main()
{
int i,a,b,c,t;
printf("请输入两个非零正整数:\n");
scanf("%d,%d",&a,&b);
printf("\n");
c=a>b?a:b;
for(i=1;i<=c;i++)
if((a%i==0)&&(b%i==0))
t=i;
printf("最大公约数为:\n");
printf("%d\n",t);
}
10. 根据以下公式求π(要求满足精度0.0005)的近似值:π/2=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+……+(1*2*3*4*……*n)/(3*5*7*……*(2n+1))
#include <stdio.h>
void main()
{
float i,k,n,t;
float pi,sum=1;
for(i=1,k=1,t=1;;i++)
{
if(k/t<0.00000005)
break;
k=k*i;
t=t*(2*i+1);
sum=sum+k/t;
}
pi=sum*2;
printf("π的值为:%f\n",pi);
}
11.将两个两位数的正整数a,b合并形成一个整数放在c中,合并的方式如:当a=45,b=12时,调用该函数后,c=4152
#include <stdio.h>
void fun(int a, int b, long *c)
{
*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);
}
main()
{ int a,b;
long c;
printf("Input a b:"); scanf("%d%d", &a, &b);
fun(a, b, &c);
printf("The result is: %d\n", c);
}
12.初试矩阵加上转置矩阵
#include <stdio.h>
void main()
{
int a[3][3]={{1,1,1},{2,2,2,},{3,3,3}};
int b[3][3],c[3][3];
int i,j,t;
printf("初试矩阵为:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%3d",a[i][j]);
printf("\n");
}
printf("\n");
printf("转置后的矩阵为:\n");
for(i=0;i<3;i++)
for(j=i;j<3;j++)
{
t=a[j][i];
b[j][i]=a[i][j];
b[i][j]=t;
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%3d",b[i][j]);
printf("\n");
}
printf("\n");
printf("初试矩阵加上转置矩阵后的矩阵为:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
c[i][j]=a[i][j]+b[i][j];
printf("%3d",c[i][j]);
}
printf("\n");
}
printf("\n");
}
13.从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。如当s中的数为:7654321时,t中的数为7531
#include <stdio.h>
void fun (long s, long *t)
{
long i,k,n=10;
k=s%10;
for(i=0;i<s;i++)
{
s=s/100;
k=(s%10)*n+k;
n=n*10;
}
*t=k;
}
main()
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论