2019/3/17练习

1.输入两个正数,a,b求出两个数的最大公约数和最小公倍数

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void swap(int* x, int* y)
{
 if (x < y)
 {
  int temp = *x;
  *x = *y;
  *y = temp;
 }
}
int main()
{
 int a, b;
 scanf("%d%d", &a, &b);
 int cheng = a*b;
 swap(&a, &b);
  for (; b >= 1; --b)
  {
   if (a%b == 0)
    break;
    }
    printf ("最大公约数%d",b);
    printf ("最小公倍数%d",temp/b);
system("pause");
return 0;

这段代码,先让两个数字想乘,然后求出两个数字的乘机,接着是用一段函数交换 出两个数字中的最大值,然后慢慢递减直到求出第一个使得模为0的数字。

while(b!=0)
{
r=a%b;
a=b;
b=r;
}

2.输入一行字符,分别统计出其中的英文字母,空格数字和其他字符个数。


#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
char ch;
int letters = 0, sapce= 0, digit = 0, other = 0;
while ((ch = getchar())!= '\n')
{
if ('a' <=ch&&ch <= 'z' || 'A'< ch&&ch <= 'Z')
letters++;
else if (ch == ' ')
sapce++;
else if (ch >= '0'&&ch <= '9'
digit++;
else
other++;
}
printf("字母有%d个\n空格有%d个\n数字有%d个\n其他有%d\n个\n", letters,sapce, digit, other);
system("pause");
return 0;
}
关于这个代码我有几个问题,要是在while()外部对ch进行赋值,则不会对ch进行自动遍历操作,
但是要是在while()内部对ch=getchr()操作则可以在运行过程中自动遍历。

ch = getchar();
 while (ch  != '\n')
 {
 }

3.求sn=a+aa+aaa+aaaa+aaaaa的值,其中a代表一个数字,n表示数字个数请实现这个代码。

 #include<stdio.h>
  #include<string.h>
#include<stdlib.h>
 int main() {  
  int i = 1;
   int n ;
  int num ;
   scanf("%d%d", &n, &num);
   int sum1 = num;
   int sum2 = 0;
   for (i; i < n; ++i)
   {
      sum1 = (sum1 * 10)+num;
      sum2 = sum2 + sum1;
   }
   printf("%d", sum2 + 2);
   system("pause");
   return 0;
   }

4.求阶乘的和比如当你输入5的时候就会算出1!+2!+3!+4!+5!。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
   int a
   int i;
   int j;
   int sum1 = 1;
   int sum2 = 0;
   scanf("%d", &a);
   for (j = 1; j <=a;++j)
   {
      sum1 = 1;                 //需要注意的是这里,每次内部循环结束这都要对sum1进行重新初始化
      for (i = 1; i <= j;++i)
      {
         sum1 = sum1*i;
      }
      sum2 = sum2 + sum1;
   }
   printf("%d", sum2);
   system("pause");
   return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_43767691/article/details/88626642