1.用π/41-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小时内删除。