C语言 练手代码(5)

/@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/

/* * * * * * * * * * * * * * * * */
/* * * 函数名:  Count   * * */
/* * * 功能:  读字符个数    * * */
/* * * * * * * * * * * * * * * * */

void Count(void)
{
 int temp = 0;
 printf("请每次最多输入了1个字符再回车确认,若不输入字符直接回车  程序结束\n");
 while (1)
 {
  char element = getchar();
  fflush(stdin);
  if (element != '\n')
  {
   if (element != ' ') //去空格  如果要计算空格  就去掉
    temp++;
  }
  else
   break;
  printf("现在输入了%d个字符\n", temp);
 }
}

还可以这样子

void Count(void)
{
 int nub = 0;
 char temp;
 printf("本程序只输入一次 请一次性输入你想要输入的所有任意个字符再回车确认\n");
 while ((temp = getchar()) != '\n')
 {
  if (temp != ' ')
  nub++;
 }
  
 printf("总共输入了%d个字符\n", nub);
}



/@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/

/* * * * * * *     0——1000内能被三整除的数的和              * * * * * * */
/* * * * * * * * * * * * * * * * */
/* * * 函数名:  Sum   * * */
/* * * 功能:    求和      * * */
/* * * * * * * * * * * * * * * * */
void Sum(void)
{
 int sum = 0;
 int flag = 1000;
 while (flag)
 {
  if (!(flag % 3))
   sum += flag;
  flag--;
 }
 printf(" 0——1000内能被三整除的数的和是 : %-d \n", sum);
}

/@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/

/*一个整数n 大于1 奇数 则变为3n+1 偶数 则变为n/2 直到n为1 求一共循环多少次*/
/*用while()  do while()两种方式实现*/
/* * * * * * * * * * * * * * * * */
/* * * 函数名:  Circle   * * */
/* * * 功能:  循环求次数    * * */
/* * * * * * * * * * * * * * * * */
void Circle(void)
{
 int nub, temp = 0;
 printf("请输入一个大于1的整型数字:\n");
 scanf("%d", &nub);
 /*while (nub != 1)
 {
  if (nub % 2)
   nub = 3 * nub + 1;
  else
   nub /= 2;
  temp++;
 }*/
 do
 {
  temp++;
  if (nub % 2)
   nub = 3 * nub + 1;
  else
   nub /= 2;
 } while (nub != 1);
 printf("一共循环了%d次\n\n此时输入的值变为%d\n\n", temp, nub);
}


/@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/

/*       求100——1000的水仙花数      */
/* * * * * * * * * * * * * * * * */
/* * * 函数名:narc_nub   * * */
/* * * 功能:  水仙花数      * * */
/* * * * * * * * * * * * * * * * */


void narc_nub(void)
{
 int nub = 1000, temp1 = 0, mid, sum = 0;
 
 while (nub > 100)
 {
  mid = nub;
  //方式四
  for (; mid > 0; mid /= 10)
  {
   temp1 = mid % 10;
   sum = sum + (temp1*temp1*temp1);
  }
  /*//方式三
 flag:
  temp1 = mid % 10;
  sum = sum + (temp1*temp1*temp1);
  if (mid /= 10)
   goto flag;
  */
  /*//方式2
  do
  {
   temp1 = mid % 10;
   sum = sum + (temp1*temp1*temp1);
  } while (mid /= 10);
  */
  /*//方式1
  while (mid)
  {
   temp1 = mid % 10;
   mid /= 10;
   sum = sum + (temp1*temp1*temp1);
  }
  */
  if (sum == nub)
  {
   printf("%d\n", nub);
  }
  sum = 0;
  nub--;
 }
}

/@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/





猜你喜欢

转载自blog.csdn.net/weixin_42510998/article/details/80998805