C语言基础实列

1.求1000以内素数
素数:除1和它本身以外不能被任何数整除

#iniclude"stdio.h"
int fun(int m)
{
     int i,h=1;                         #定义一个标志变量h
     for (i = 2; i < m;i++)
     if (m%i == 0)
     {  h = 0; break; }								#若标志变量h为零,则不是素数,终止循环
     return h;
}
int  main()
{
     int n;
     for (n = 2; n <= 1000;n++)
     if (fun(n)==1)
     printf("%5d", n);
}

2.1000以内完数
完数:除自身以外的约数之和等于它本身

#include "stdio.h"
int fun(int m)
{
     int i, sum=0;
     for(i=1;i<m;i++)
            if(m%i==0)
                   sum=sum+i;						#求约数之和
     if(sum==m)							#判断是否为完数
            return 1;
     else
            return 0;
}
int main()
{
     int n;
     for(n=2;n<=1000;n++)
            if(fun(n)==1)
                 printf("%5d",n);
     return 0;
}

3.求两个数的最大公约数和最小公倍数
最小公倍数=两数之积除以最大公约数

#include "stdio.h"
int min(int a,int b)
{
    if(a>=b) return b;					#求两个数的最小值
    else
           return a;
}
int fun(int x,int y)
{
    int i,n;
    for(i=1;i<=min(x,y);i++)
           if(x%i==0&&y%i==0)				#判断公约数
                  n=i;
    return  n;
}
int main()
{
    int m,n,t;
    scanf("%d%d",&m,&n);
    t=fun(m,n);
    printf("%5d\n",t);
    printf("%5d\n",m*n/t);
}

4.输入一段英文,统计单词个数
通过统计单词间空格的数量来统计单词数量

#include "stdio.h"
int fun(char a[])
{
    int sum=0,i;
    for(i=0;a[i]!='\0';i++)
           if(a[i]==' ')
                  sum++;
    return sum+1;                   
}
 main()
{
    char *b=new char[];
    gets(b);
    printf("%d\n",fun(b));
}

5.输入两串字符,将其连接

#include<stdio.h>
int main()
{
    char s1[100],s2[80];
    int i=0,h=0;
    scanf("%s%s",&s1,&s2);
    while(s1[i]!='\0')
    i++;
    while(s2[h]!='\0')
    s1[i++]=s2[h++];
     s1[i]='\0';
    printf("%s",s1);
    return 0;
}
发布了7 篇原创文章 · 获赞 2 · 访问量 272

猜你喜欢

转载自blog.csdn.net/sy140823/article/details/86315349