该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#include
#define N 10//练习1拓展需要
#include //练习2需要
void main(int argc, char *argv[])
{
int gcd(int,int);
int lcm(int,int,int);
printf("=====练习1.输入两个正整数,m和n,求其最大公约数和最小公倍数。=====\n");
int x,y,g,l;
to:
printf("输入两个正整数:\n");
scanf("%d%d",&x,&y);
g=gcd(x,y);
l=lcm(x,y,g);
printf("其最大公约数:%d\n其最小公倍数:%d\n\n",g,l);
printf("=====练习1拓展.求2个及以上数的最大公约数和最小公倍数。=====\n\n");
int n,a[10];
printf("输入数目个数: (不超过%d)\n",N);
A:
scanf("%d",&n);
if(n<2){
printf("输入有误,请重新输入\n");
goto A;
}
printf("输入所有要求最大公约数的数:\n");
int i;
for(i=0;i
scanf("%d",&a[i]);
int g1=a[0];
for(i=0;i
g1=gcd(g1,a[i]);
int l1=a[0],l2;
for(i=1;i
l1=l1*a[i];
l2=l1/g1;
printf("上述数字的最大公约数为:%d\n最小公倍数为:%d\n\n",g1,l2);
printf("=====2.输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数。=====\n\n");
void count(char[]);
char str[80];
printf("输入一串字符:\n");
gets(str);
printf("string:");
puts(str);
count(str);
goto to;
}
int gcd(int m,int n)
{
return (m%n==0)?n:gcd(n,m%n);
}
int lcm(int m,int n,int g)
{
return m*n/g;
}
//练习2函数
void count(char string[])
{
int j,al=0,b=0,m=0,others=0;
for(j=0;string[j]!='\0';j++)
if((string[j]>='a'&&string[j]<='z')||(string[j]>='A'&&string[j]<='Z'))
al++;
else if(string[j]==32)
b++;
else if(string[j]>=48&&string[j]<=57)
m++;
else
others++;
printf("字母数:%d 空格数:%d 数字数:%d 其他字符数:%d\n\n",al,b,m,others);
}