C语言实验 循环结构

时间:2024.11.8

一、实验

7-1 求交错序列前N项和

复制代码
#include<stdio.h>
#include<math.h>
int main(){
    int n;
    double a,b,c;
    double sum=0;
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        a=pow(-1,i+1)*i;
        b=2.0*i-1.0;
        c=1.0*a/b;
        sum+=c;
    }

    printf("%.3lf",sum);
    return 0;
}

TIPS:

++注意变量的类型,整型的计算无法满足小数的要求++

++7-2 寻找250++

复制代码
#include<stdio.h>
#include<math.h>
int main(){
    int n;
   
    for(int i=1; ;i++){
      
    if(n==250){
     printf("%d",i-1);
        break;
    }
   scanf("%d",&n);
    } 
    return 0;
}

TIPS:

++注意循环的退出和输入数据的时机 。++

++7-3 最大公约数和最小公倍数++

复制代码
#include<stdio.h>
#include<math.h>
int main(){
    int m,n,t,p;
   scanf("%d %d",&m,&n);
    t=m>n?n:m;
    
  while(1){    
    if(m%t==0&&n%t==0){
  
        break;
    }else t--;}
  p=m*n/t;
  printf("%d %d",t,p);
    return 0;
}

TIPS:

++最大公约数和最小公倍数的找法,如果两个都需要求,可以通过简便方法由最大公因数求最小公倍数。++

7-4 统计字符

复制代码
#include<stdio.h>
#include<math.h>
int main(){
    char m;
   int l=0,b=0,d=0,o=0;
    
  for(int i=1;i<=10;i++){ 
      scanf("%c",&m);
    if((m>='a'&&m<='z')||(m>='A'&&m<='Z')){
     l++;
        
    }else if(m==' '||m=='\n'){
       b++; 
       
    }else if(m<='9'&&m>='0'){
       d++;
     
    }else {o++;}

      }
 
  printf("letter = %d, blank = %d, digit = %d, other = %d",l,b,d,o);
    return 0;
}

7-5 大笨钟

复制代码
#include<stdio.h>
#include<math.h>
int main(){
    int m,h,n;
   scanf("%d:%d",&h,&m);
   
       if((h<12)||(h==12&&m==0)){
       printf("Only %02d:%02d.  Too early to Dang.",h,m);
   }else {
       if(m==0){
          
           n=h-12;
       }else n=h-11;
for(int i=1;i<=n;i++)
{printf("Dang");}}
    return 0;
}

TIPS:

++先考虑一般情况,再考虑整点,分界点(零点、中午12点) 等的特殊情况++

7-6 统计选票

复制代码
#include<stdio.h>
#include<math.h>
int main(){
    int t=0,j=0,n,s=0,f=0;
do{
    scanf("%d ",&n);
   if(n==1) t++;
 else if(n==1) t++;
 else if(n==2) j++;
 else if(n==3) s++;
    else if(n==0||n==4) f++;
}while(n!=-1);
  
   printf("Tom = %d Jerry = %d Spike = %d Invalid = %d\n",t,j,s,f);
   if(t<=f&&j<=f&&s<=f)
   {  printf("Election invalid!");}
    return 0;
}

TIPS:

++注意输出的顺序,哪个语句在前,哪个语句在后,注意输出和输入是否需要换行++

7-7 降价提醒机器人

复制代码
#include<stdio.h>
#include<math.h>
int main(){
    int m,n;
    double h;
   scanf("%d %d\n",&n,&m);
   for(int i=1;i<=n;i++){
       scanf("%lf\n",&h);
       if(h<(m*1.0)){
           printf("On Sale! %.1lf\n",h);
       }
   }
    
    return 0;
}

7-8 幸运彩票

复制代码
#include<stdio.h>
#include<math.h>
int main(){
    int m,n;
    int q,h;
   scanf("%d\n",&n);
   for(int i=1;i<=n;i++){
       scanf("%d\n",&m);
       q=m/100000+m/10000%10+m/1000%10;
       h=m%10+m%100/10+m%1000/100;
       if(q==h){
           printf("You are lucky!\n");
       }else 
           printf("Wish you good luck.\n"); 
   }
    
    return 0;
}

二、知识点

2.1注意变量的类型,整型的计算无法满足小数的要求

2.2注意循环的退出和输入数据的时机 (break的使用)

2.3最大公约数和最小公倍数的找法。

相关推荐
晓蛋2 天前
c语言指的是什么意思
c语言·编译器·编程开发·集成开发环境·程序实例
倒头就睡的小比特2 天前
算法竞赛C++常用的STL
c++·算法
不悔哥2 天前
开源OV-Watch:怎么做一个智能手表
单片机·开源·嵌入式
weilx12342 天前
C++笔记-文件IO-<fcntl.h>
c++
小羊没烦恼!2 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
傲世仙尊2 天前
目录即文件-Ext文件系统收尾篇
linux·c语言
XiHongShi20162 天前
STM32F407 RTC定时器例程,建议保存
stm32·单片机·学习
牵猫散步的鱼儿2 天前
重载、重写(覆盖)、重定义区别
c语言
伞伞悦读2 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
猎头南楼2 天前
知识社区推荐系统实践:新用户冷启动与长短期兴趣建模的挑战 资深推荐算法工程师
人工智能·深度学习·算法·机器学习