编程题(if-else的应用、打印倒三角形(参数输入)、计算字符串中最大连续相同的字符个数、计算台阶问题)

/*编制程序要求输入整数a和 b,若a²+b²大于 100,则输出 a²+b²百位以上的数字,否则输出两数之和。*/

/******************************************************************************************************
 * @file name:		  : demo.c
 * @brief  		      :整数a和 b,若a²+b²大于 100,则输出 a²+b²百位以上的数字,否则输出两数之和
 * @author 		      :wvjnuhhail@126.com
 * @date 			      :2024/07/02
 * @version 1.0 	  :V1.0
 * @property 		    :暂无
 * @note   		      :None
 * CopyRight (c)  2023-2024   wvjnuhhail@126.com   All Right Reseverd
 ******************************************************************************************************/


#include <stdio.h>
#include <time.h>
#include <stdlib.h>
/*******************************************************************************************************
 * @function name   :	findMax
 * @brief           : 传参计算两个数
 * @param           :
 *                    @a: a
 *                    @b: b
 * @retval          : void
 * @date 			      :2024/07/02
 * @version         :V1.0
 * @note   		      :None
 *******************************************************************************************************/
void Calculate(int a, int b)
{
  printf("a:%d-------b:%d\n", a, b);

  // 定义一个变量存储两和平方大于100
  int cnt = ((a * a) + (b * b));

  // 160000

  if (cnt > 100)
  {

    if ((cnt / 100) >= 10)
    {
      cnt /= 100;
      cnt /= 10;
      printf("当前的cnt值是:%d\n", cnt);
      printf("大于100,输出百位以上的数字:%d\n", cnt);
    }
    else
    {
      printf("当前的cnt值是:%d\n", cnt);
      printf("大于100,输出百位以上的数字:%d\n", (cnt / 100)); // 5
    }
  }
  else
  {

    printf("当前的cnt值是:%d\n", cnt);
    printf("a² + b² < 100,输出a + b = %d\n", (a + b));
  }
}

int main(int argc, char *argv[])
{

  int a = 0;

  int b = 0;

  printf("input the two number :");

  scanf("%d %d", &a, &b);

  Calculate(a, b);

  return 0;
}

/*打印倒三角形,底边长n作为参数输入,从键盘倒入。例如:
   当n=7时,打印出:			当n=8时,打印出:
   *******						********
     *****						  ******
       ***							****
         *							  **
*/

/******************************************************************************************************
 * @file name:		  : 107.c
 * @brief  		      :输出*的图形
 * @author 		      :wvjnuhhail@126.com
 * @date 			      :2024/07/02
 * @version 1.0 	  :V1.0
 * @property 		    :暂无
 * @note   		      :None
 * CopyRight (c)  2023-2024   wvjnuhhail@126.com   All Right Reseverd
 ******************************************************************************************************/
#include <stdio.h>



int main(int argc, char const *argv[])
{

  printf("input the bottom edge length: \n");

  int i, j, k, l, n;

  scanf("%d", &n);

  while (getchar() != '\n')
    ;
  printf("The output graph is as follows:\n");
  if (n % 2 == 1) // n为奇数
  {
    for (i = 1; i <= (n + 1) / 2; i++) // 每行
    {
      for (j = 1; j <= 2 * (i - 1); j++) // 打印空格
      {
        printf(" ");
      }
      for (k = 1; k <= n - 2 * (i - 1); k++) // 再打印*
      {
        printf("*");
      }
      printf("\n"); // 每行结束后回车
    }
  }
  else // n为偶数
  {
    for (i = 1; i <= n / 2; i++)
    {
      for (j = 1; j <= 2 * (i - 1); j++) // 打印空格
      {
        printf(" ");
      }
      for (k = 1; k <= n - 2 * (i - 1); k++) // 再打印*
      {
        printf("*");
      }
      printf("\n"); // 每行结束后回车
    }
  }
  return 0;
}



/*计算字符串 s中最大连续相同的字符个数。
例如,若s 为"aaabbbb",则返回值为4;
若s为"abcde",则返回值为1。
int  max_same_char( char* s)
*/

/******************************************************************************************************
 * @file name:		  : 108.c
 * @brief  		      :计算字符串中最大连续相同的字符个数
 * @author 		      :wvjnuhhail@126.com
 * @date 			      :2024/07/02
 * @version 1.0 	  :V1.0
 * @property 		    :暂无
 * @note   		      :None
 * CopyRight (c)  2023-2024   wvjnuhhail@126.com   All Right Reseverd
 *******************************************************************************************************/

/************************************头文件**************************************************************/
#include <stdio.h>
#include <string.h>
/****************************************END***********************************************************/

/*******************************************************************************************************
 * @funname         :	max_same_char
 * @brief           : 计算字符串最大连续相同的字符数
 * @param           :
 *                    @a:char *s
 * @retval          : int
 * @date 			      :2024/07/02
 * @version         :V1.0
 * @note   		      :None
 *******************************************************************************************************/
int max_same_char(char *s)
{
  int maxCount = 1;     // 最大连续相同字符个数,默认为1
  int currentCount = 1; // 当前连续相同字符个数,默认为1

  int length = strlen(s); // 字符串长度
  for (int i = 1; i < length; i++)
  {
    if (s[i] == s[i - 1])
    {
      currentCount++; // 相同字符,当前个数加1
      if (currentCount > maxCount)
      {
        maxCount = currentCount; // 更新最大个数
      }
    }
    else
    {
      currentCount = 1; // 不同字符,重置当前个数为1
    }
  }

  return maxCount;
}

int main()
{
  char s[255];

  printf("input the string:");

  fgets(s, sizeof(s), stdin);
  // 移除换行符
  if (strlen(s) > 0 && s[strlen(s) - 1] == '\n')
  {
    s[strlen(s) - 1] = '\0';
  }

  int result = max_same_char(s);

  printf("最大连续相同字符个数:%d\n", result);

  return 0;
}



/*
有一条长阶梯,若每步跨2阶,则最后剩1阶;若每步跨3阶,则最后剩2阶;若每步
跨5阶,则最后剩4阶;若每步跨6阶,则最后剩5阶;只有每次跨7阶,则最后才正
好1阶不剩。写一个函数,计算这样的阶梯最少有多少级台阶。
函数原型:int GetPhaseNum();
*/
/******************************************************************************************************
 * @file name:		  : 109.c
 * @brief  		      :计算这样的阶梯最少需要台阶数
 * @author 		      :wvjnuhhail@126.com
 * @date 			      :2024/07/02
 * @version 1.0 	  :V1.0
 * @property 		    :暂无
 * @note   		      :None
 * CopyRight (c)  2023-2024   wvjnuhhail@126.com   All Right Reseverd
 *******************************************************************************************************/
#include <stdio.h>
/*******************************************************************************************************
 * @funname         :	GetPhaseNum
 * @brief           : 获得至少有多少台阶数量
 * @param           : None
 * @retval          : int
 * @date 			      :2024/07/02
 * @version         :V1.0
 * @note   		      :None
 *******************************************************************************************************/
int GetPhaseNum()
{
  int x = 1;
  while (1)
  {
    if (x % 2 == 1 && x % 3 == 2 && x % 5 == 4 && x % 6 == 5 && x % 7 == 0)
      break;
    x++;
  }
  return x;
}

int main()
{
  printf("%d\n", GetPhaseNum());
  return 0;
}

posted @ 2024-07-02 21:31  WJnuHhail  阅读(1)  评论(0编辑  收藏  举报