7.求两个正整数m和n,求其最大公约数和最小公倍数。
#include<stdio.h>
int main()
{
int m,n,gcd,lcm,t,i;
printf("输入两个正整数:");
scanf("%d %d",&m,&n);
if (m < n)
{
t = m;
m = n;
n = t;
}
for (i = 2; i <= n; i++)
{
if (m%i == 0 && n%i == 0)
gcd= i;
}
printf("最大公约数是:%d\n", gcd);
lcm = (m*n) / gcd;
printf("最小公倍数是:%d\n", lcm);
return 0;
}
8.输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数。
#include<stdio.h>
int main()
{
char c;
printf("请输入一个字符串:");
scanf("%f",&c);
int count1 = 0,count2 = 0,count3 = 0,count4 = 0;
while ((c = getchar())&&c != '\n')
{
if (c >= 'A' && c <= 'z')
count1++;
else if (c==' ')
count2++;
else if (c >= '0' && c <= '9')
count3++;
else
count4++;
}
printf("字母%d个\t空格%d个\t数字%d个\t其他字符%d个\n", count1, count2, count3, count4);
return 0;
}
9.求Sn = a + aa + aaa…… + aa···a(n个a)之值,其中a是一个数字,n表示a的位数,n由键盘输入。例如:2 + 22 + 222 + 2222 + 22222 (此时n = 5)
#include <stdio.h>
#include <math.h>
int main()
{
int a,n,Sn,i,a1;
printf("输入a和n的值,a是一个数字,n表示a的位数:");
scanf("%d%d",&a,&n);
Sn=0;
for(i=1;i<=n;i++)
{
Sn+=a;
a=a+2*pow(10,i);
}
printf("n个a的和值为:%d\n",Sn);
return 0;
}
10.输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是水仙花数,因为153 = 1 ^ 3 + 5 ^ 3 + 3 ^ 3。
#include <stdio.h>
int main()
{
int i;
int a,b,c;
printf("输入一个三位数:");
scanf("%d",&i);
if(i>99&&i<1000)
{
a=i/100;
b=i%100/10;
c=i%10;
i=c*100+b*10+a;
printf("水仙花数为:%d\n",i);
}
else
{
printf("输入错误,请重新输入一个三位数:");
}
return 0;
}