练习题:循环结构

#练习题

第一题:

计算n以内所有正奇数的和 ? n值通过键盘输入

代码:

#include <stdio.h>
#include <math.h>

int main(int argc,char *argv[])
{
    // 创建一个变量,用来存放奇数和
    int sum = 0;
    // 创建一个变量
    int i = 1;
    // 创建一个变量,用来控制最高位的数
    int n;
    printf("请您输入一个累加和的最高位:\n");
    scanf("%d",&n);

    while(i <= fabs(n))
    {
        if(i % 2 !=0)
        {
            sum += i;
        }
        i++;
    }
    printf("1~%d以内的所有正奇数和:%d\n",(int) fabs(n),sum);

    return 0;
}

运行结果:

在这里插入图片描述

第二道题

计算 1 + 1/(2 * 3) + 1/(3 * 4) + …+ 1/(n * (n + 1)) = ?直到最后一相值小于0.00001为至。

代码:

#include <stdio.h>

int main()
{
  double sum = 1.0; // 初始化总和为1,因为序列的第一项是1
  double and;       // 用于存储当前项的值
  int n = 2;        // 从第二项开始计算

  while (1)
  {
    and = 1.0 / (n * (n + 1));
    if (and < 0.00001)
    {
      break;
    }
    sum += and;
    n++;
  }
  printf("截至第%d项,累加和的值为: %lf\n", n, sum);

  return 0;
}

执行结果:

在这里插入图片描述

第三道题

计算1+1/2 - 1/3 + 1/4 - 1/5 …+1/n= ? n通过键盘输入(int k = -1)

代码:


#include <stdio.h>

int main()
{
  int n;
  float sum = 0;
  int k = 1;

  printf("请输入一个整数: \n");
  scanf("%d", &n);

  if (n <= 0)
  {
    printf("必须是正整数!\n");
    return 1;
  }

  for (int i = 1; i <= n; i++)
  {
    sum += k * (1.0 / i);
    k = -k;
  }

  printf("计算的和为: %f\n", sum);

  return 0;
}

运行结果:

在这里插入图片描述

第四道题

计算n以内所有正奇数的和 ? n值通过键盘输入

代码:


#include <stdio.h>

int main(int argc,char *argv[])
{
    int sum = 0;
    int i = 1;
    int n;

    printf("请输入一个正整数!\n");
    scanf("%d",&n);

    while(i <= n)
    {
        sum += i * (i+1);
        i++;
    }
    
    printf("n的阶乘值为:%d\n",sum);

    return 0;
}

运行结果:

在这里插入图片描述

第五道题

输出半径为1~10的圆面积,面积大于100时停止

代码:

#include <stdio.h>
#include <math.h>

int main(int argc, char *argv[])
{
    float sum = 0;
    int r = 1;
    float PI = 3.14;

    for (;r <= 10;r++)
    {
        sum = PI * r * r;
        if (sum > 100)
        {
            break;
        }
        printf("半径为:%d时,面积为:%.2f\n",r,sum);
    }
    return 0;
}

运行结果:

在这里插入图片描述

第六道题

求输入的十个整数中正数的个数及其平均值

代码:

#include <stdio.h>

int main(int argc,char *argv[])
{
    int i = 1;// 用来控制输入的个数
    int m;// 接收输入的数值
    double sum;// 接收计算的结果
    
    printf("请输入10个整数:\n");
    scanf("%d",&m);

    for(;i <= 10;i++)
    {
        scanf("%d",&m);
        sum += m;// sum = sum + m;        
    }

    printf("输入的十个整数的平均值为:%.2lf\n",sum / 10);
    return 0;
}

运行结果:

在这里插入图片描述

第七道题

打印出100以内能整除7之外的的自然数

代码:

#include <stdio.h>

int main(int argc,char *argv[])
{
    int i = 1;
    
    for(;i <= 100;i++)
    {
        if(i % 7 == 0)
        {
            continue;
        }
        printf("%5d\t",i);
    }
    printf("\n");
    return 0;
}

运行结果:

在这里插入图片描述

第八道题

打印九九乘法表

#include <stdio.h>

int main()
{
  int i, j;

  // 打印九九乘法表
  for (i = 1; i <= 9; i++)
  {
    for (j = 1; j <= i; j++)
    {
      printf("%d*%d=%-2d  ", j, i, i * j);
    }
    printf("\n");
  }
  return 0;
}

运行结果:

在这里插入图片描述

第九道题

我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

代码:

#include <stdio.h>
int main(int argc, char *argv[])
{
  int g, m, c;
  for (g = 0; g <= 20; g++)
  {
    for (m = 0; m <= 33; m++)
    {
      c = 100 - g - m;
      if (c >= 0 && c % 3 == 0 && (5 * g + 3 * m + c / 3) == 100)
      {
        printf("公鸡: %d, 母鸡: %d, 雏鸡: %d\n", g, m, c);
      }
    }
  }
  return 0;
}

运行结果:

在这里插入图片描述

第十道题

从键盘上输入多个无符号整型数据,直到 0 结束 ,输出所输入数据中的最大值。

代码:

#include <stdio.h>
int main(int argc, char *argv[])
{
  int a,max = 1;
  while (1)
  {
    printf("请输入值:\n");
    scanf("%d", &a);
    if (max < a)
    {
      max = a;
    }
    if (a == 0)
    {
      break;
    }
  }
  printf("输入数值中最大的为:%d\n",max);
  return 0;
}

运行结果:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值