C 语言教程 在线

1715c-exercise-example17

参考方法:

#include <stdio.h>
#include <ctype.h>
#define N 100
int main(){
    char c1;
    char str[N];
    int lower=0,upper=0,space=0,digit=0,other=0;
    gets(str);
        int i=0;
        while(str[i]){
            c1=str[i];
            i++;
            if(islower(c1))
                lower++;
            else if(isupper(c1))
                upper++;
            else if(isspace(c1))
                space++;
            else if(isdigit(c1))
                digit++;
            else
                other++;
        }
    printf("大写字母=%d,小写字母=%d,数字=%d,空格=%d,其他=%d\n",upper,lower,digit,space,other);
    return 0;
}

1714c-exercise-example17

参考方法:

#include<stdio.h>
int main(void)
{
    char ch;
    int alpha,num,space,others;
    alpha = num = space = others = 0;
    printf("请输入一些字母:\n");
    while((ch = getchar()) != '\n')
    {
        if((ch >= 'a' && ch <= 'z')||(ch >='A' && ch <='Z'))
            alpha++;
        else if(ch >= '0' && ch <= '9')
            num++;
        else if(ch == ' ')
            space++;
        else
            others++;
    }
    printf("字母=%d,数字=%d,空格=%d,其他=%d",alpha,num,space,others);
    return 0;
}

1713c-exercise-example17

参考方法:

#include <stdio.h>

int main()
{
    int c,i=0, j=0, k=0, l=0;
     printf("请输入一些字母:\n");
    while(c!='\n')
    {
        c=getchar();
        if( c>96 && c<123 )i++;
        if( c>64 && c<91 )i++;
        if( c>47 && c<58 )j++;
        if( c==32 )k++; 
        l++;  // 会多计算一个Eenter,故需在统计时减一;
    }
    printf("英文字母%d个,数字%d个,空格%d个,其它字符%d个\n",i,j,k,l-i-j-k-1);
}

1712c-exercise-example16

参考方法:

#include <stdio.h>
#define swap(a,b) { a=a+b; b=a-b; a=a-b; }
int gcd(int x,int y){
    if(y==0)
        return x;
    else
        return gcd(y,x%y);
}

int lcd(int x,int y){
    return (x*y)/gcd(x,y);
}
int main(){
    int m,n;
    while(scanf("%d%d",&m,&n)!=EOF){
        if(m<n) swap(m,n);
        printf("最大公约数:%d\n",gcd(m,n));
        printf("最小公倍数:%d\n",lcd(m,n));
    }
    return 0;
}

1711c-exercise-example16

参考方法:

#include <stdio.h>

long maxn(long a, long b)
{
    long temp;
    while(1)
    {
        if(a==b) return a;
        else if(a < b) b -= a;
        else a -= b;
    }
}

int main()
{
    long a, b, m, n;
    printf("请输入两个正整数: ");
    scanf("%ld %ld", &a, &b);
    printf("输入的数字是: %ld和%ld\n", a, b);
    m = maxn(a, b);
    n = a * b / m;
    printf("最大公约数是: %ld\n最小公倍数是: %ld\n", m, n);
}