实验5 循环结构(1)

 1024 计算阶乘

输入正整数n(n<12),计算n!(注n!=1*2*3*...*n)
输入样例
3
输出样例
6
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i=1,n;
    scanf("%d",&n);
    while(n>=1)
    {
        i=i*n;
        n--;
    }
    printf("%d",i);
    return 0;
}

1025 计算简单数列和 

有数列1,3,5,7,9,11,……
现要求由键盘输入n,计算输出该数列的前n项和。(给的n不会超过10000)
输入样例
5
输出样例
25
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i=1,n,sum=1;
    scanf("%d",&n);
    while(n>1)
    {
        i=i+2;//第一次循的时候就是前两项1、3的和
        sum+=i;
        n--;
    }
    printf("%d",sum);
    return 0;
}

1044 输出最小值 

从键盘输入十个整数,输出最小值
输入格式
输入的整数绝对值不会超过10000
输出格式
按样例格式输出结果
输入样例
12  45  76  87  5  87  43  55  99  21
输出样例
5
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a[10];
    int i=0;
    for(i=0;i<10;i++)
    scanf("%d",&a[i]);
    int min=a[0];
    for(i=0;i<10;i++)
    {
        if(min>a[i])
            min=a[i];
    }
    printf("%d",min);
    return 0;
}

1030 字符变换 

由键盘输入一个句子(字符个数不定,最多不超过80个,以'\n'结束),将其中的大写字符变成小写(其它类型的字符不变),
最后输出变换后的句子。
输入样例
ThiS IS My fIrSt C ProgrAm!
输出样例
this is my first c program!
#include <stdio.h>
#include <stdlib.h>

int main()
{
    char c;
//这里要先输入再判断,用do while
    do
      {
           c=getchar();
        if(c>='A'&&c<='Z')
            c=c+32;
        printf("%c",c);
      }
    while(c!='\n');
    return 0;
}

1037 计算数列和 

 编程实现,由键盘输入n,计算输出数列前n项和。(结果保留四位小数,提示:要使用double,否则精度不够)
输出格式

请按格式输出

输入样例

20

输出样例

32.6603

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n;
    scanf("%d",&n);
    double a=1,b=2,sum,t;
    for(;n>0;n--){//for语句的初始值是可以空着的
       sum+=b/a;//这里先加后重新赋值
       t=a;
       a=b;
       b=t+b;
    }
    printf("%.4lf",sum);
    return 0;
}

 1029 求最大公约数

由键盘输入两个正整数m、n(m、n<1000000),计算它们的最大公约数。
输入样例
16,24
输出样例
8

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int m,n,i;
    scanf("%d,%d",&m,&n);//注意这里的,是全角还是半角
    for(i=n;i>=1;i--){
     if(n%i==0&&m%i==0)
     {
          printf("%d",i);
          break;
     }
     }
    return 0;
}

1031 统计单词个数 

写一个函数实现:输入一行字符,以空格分割单词,回车结束输入,输出单词的个数
输入样例
There are many students and many trees!
输出样例
7
//单词间可能有多个空格
#include<stdio.h>
main()
{   int num=0,word=0;
    char c;
    while((c=getchar())!='\n')
    {//空格的时候执行if,不是空格的时候执行else if,不会if也执行,else if也执行
       if(!(c>='a'&&c<='z'||c>='A'&&c<='Z'))
            word=0;
       else if(word==0)
       {   word=1;
           num++;
       }
    }
    printf("%d",num);
}
//法二
#include<stdio.h>
int main()
{
  int num=1;
  char c,d;
  while((c=getchar())!='\n')
     {
     if(c==' '&&d!=' '&&d!=0)
      {num++;}
      d=c;
     }
  printf("%d\n",num);
  return 0;
}
//法三
//是循环逐个输入与遍历的时候,遇到空格就count++,然后可以把空格之后的空格用循环getchar来读取掉
#include<stdio.h>
int main()
{
    int i=0;
    int num= 1;
    char a;
    while((a =getchar())!='\n')
    {
        if(a == ' ')
        {
            num++;
            while((a=getchar())==' ');
        }
    }
    printf("%d\n",num);
}

1042 百万富翁

一个百万富翁遇到一个陌生人,陌生人找他谈了一个换钱的计划。该计划如下:我每天给你m元,
而你第一天只需给我一分钱。第二天我仍给你m元,你给我2分钱。第三天,我仍给你m元,
你给我4分钱。依次类推,你每天给我的钱是前一天的两倍,直到一个月(30天)。
百万富翁很高兴,欣然接受这个契约。现要求,编写一个程序,由键盘输入m,
计算多少天后,百万富翁开始亏钱。
输入样例
100
输出样例
18
#include <stdio.h>
#include <stdlib.h>

int main()
{
    double m,a,b=0.01,t=0.02;
    int i=1;
    scanf("%lf",&m);
    a=m;
    while(a>=b)
    {
        a=i*m;
        b+=t;
        t=2*t;
        i++;
    }
    printf("%d",i);
    return 0;
}

1  求因子个数 

由键盘输入一个int类型的正整数n,求n有多少个不同的正整数因子。

注:能整除N的数称为N的因子
输入格式
正整数
输入样例
24
输出样例
8
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n,count;
    scanf("%d",&n);
    for(int i=n;i>0;i--)
    {
        if(n%i==0)
            count++;
    }
    printf("%d",count);
    return 0;
}

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值