C语言小程序练习

时间:2021-07-24 01:09:33
统计出一行字符中英文字母、空格、数字的个数
#include <stdio.h>
#include <string.h>

int main()
{
      int a=0,b=0,c=0;
      int i,pos;
      char str[20] = "abc1 fg3 h";
      pos= strlen(str);
      for (i = 0; i < pos; i++)
      {
            if(str[i] == ' ')
            {
                 a++;//找出一个空格计数一次
             }
             if((('a' <= str[i])&&(str[i] <= 'z'))||(('A' <= str[i])&&(str[i] <= 'Z')))
            {
                 b++;// 找出一个字母计数一次
            }
            if(('0' <= str[i])&&(str[i] <= '9'))
            {
                 c++;// 找出一个数字计数一次
            }
      }    
 printf("字母有%d个\n空格有%d个\n数字有%d个\n",b,a,c);
 return 0;
}

输入两个正整数m和n,求其最大公约数和最小公倍数
#include <stdio.h>

int main()
{
     int max,min,i;
     printf("请输入小的数=");
     scanf("%d",&min);
     printf("请输入大的数=");
     scanf("%d",&max);
     for (i = 0; i <= min; i++)
     {
            if ((max%(min-i)==0)&&(min%(min-i)==0))
            break;
     }
     printf("最大公约数=%d\n",min-i);
     printf("最小公倍数=%d\n",(min*max)/(min-i));//最小公倍数=两个数相乘/最大公约数
 return 0;
}


有1、2、3、4这4个数字,能组成多少个互不相同且无重复数字的三位数?分别是多少?
#include <stdio.h>

int main()
{
     int i,j,k,n=0;
     for (i = 1; i <= 4; i++)
     {
           for (j = 1; j <= 4; j++)
           {
                 for (k = 1; k <= 4; k++)
                 {
                       if (i != j&&j != k&&i !=k)
                       {
                       n++;
                       printf("%d ",i*100+j*10+k);
                       }
                 }
           }
      } 
      printf("一共有%d组数\n",n);
      return 0;
}

9×9乘法表
#include <stdio.h>

int main()
{
     int i,j;
     int m;
     for (i = 1; i < 10; i++)
     {
           for (j = 1; j <= i; j++)
           {
                 m=i*j;
                 printf("%d*%d=%d ",i,j,m);   
           }
           printf("\n");
     }
     return 0;
}