码迷,mamicode.com
首页 > 其他好文 > 详细

实验三

时间:2019-04-17 00:04:32      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:c语言程序   观察   成绩   使用   循环   demo   功能   结构   a+b   

 

part1

demo1.cpp

 /*
《C语言程序设计教程学习指导》p122 实验内容(1):判断三角形类型:一般三角形、等腰三角形、等边三角形 
 这是一个使用多分支if语句编程解决非数值类问题示例 
 运行程序,输入不同边长数据进行测试,观察输出结果是否正确,理解和巩固if语句功能和用法
*/ 
 #include <stdio.h>
 int main() {
     double a,b,c;
     scanf("%lf %lf %lf", &a, &b, &c);
     
     if(a+b>c && a+c>b && b+c>a) {
         if(a==b && a==c)   
             printf("构成等边三角形\n");
         else if(a==b || a==c || b==c)   
             printf("构成等腰三角形\n");    
         else
             printf("构成一般三角形\n");
     }
     else
         printf("不能构成三角形\n");
         
     return 0;
 } 

运行结果

技术图片

技术图片

技术图片

demo2.cpp

/*
这是在demo1.cpp的基础上行,增加了一小部分代码,可以循环判断多组数据
要终止输入和判断:按组合键Ctrl+D(同时按下Ctrl和D键),然后按回车键结束 
*/ 
 #include <stdio.h>
 int main() {
     double a,b,c;
     printf("输入三角形三边:\n");
     
     while(scanf("%lf%lf%lf",&a,&b,&c)) {
         if(a+b>c && a+c>b && b+c>a) {
             if(a==b && a==c)   
                 printf("构成等边三角形\n");
             else if(a==b || a==c || b==c)   
                 printf("构成等腰三角形\n");    
             else
                 printf("构成一般三角形\n");
         }
         else
             printf("不能构成三角形\n");
             
         printf("\n输入三角形三边:\n");
    }    
    
     return 0;
 } 

技术图片

demo3.cpp

/*
《C语言程序设计教程学习指导》p122 实验内容(2):输入百分制分数,测算并输出等级制分数
 这是一个综合使用while语句、多分支if语句和continue、break实现分数段判断的示例  
 运行程序,输入不同分数值进行测试,理解和巩固这些控制语句的用法 
 按下组合键Ctrl+D(同时按下Ctrl和D)结束判断 
*/ 
 
 #include <stdio.h>
 int main() {
     int score;     // 用于存放百分制分数 
     char grade;  // 用于存放等级制分数(取值‘A‘, ‘B‘,‘C‘,‘D‘, ‘E‘) 
    
    while(1) {
        printf("输入学生成绩: ");
        if(scanf("%d",&score) == 0)  // 如果检测到没有成绩输入,则结束整个循环 
            break; 
            
        if(score<0 || score > 100) {
            printf("输入成绩有误!\n\n");
            continue;    // 结束本次循环,开始下一次循环 
        }
        else if(score>=90 && score<=100)
            grade = A;
        else if(score>=80 && score<=89)
            grade = B;
        else if(score>=70 && score<=79)
            grade = C;
        else if(score>=60 && score <=69)
            grade = D;
        else
            grade = E;
            
        printf("等级为: %c\n\n", grade);
    }
    
     return 0;
 } 

运行结果
技术图片

demo4.cpp

/*
相较于demo3.cpp,这个代码实现中,分数从百分制转换为等级制的部分,使用switch语句实现 
 按下组合键Ctrl+D(同时按下Ctrl和D),然后按回车键,结束判断 
*/ 
 
 #include <stdio.h>
 int main() {
     int score;     // 用于存放百分制分数 
     char grade;  // 用于存放等级制分数(取值‘A‘, ‘B‘,‘C‘,‘D‘, ‘E‘) 
    
    while(1) {
        printf("输入学生成绩: ");
        if(scanf("%d",&score) == 0)  // 如果检测到没有成绩输入,则结束整个循环 
            break; 
            
        if(score<0 || score > 100) {
            printf("输入成绩有误!\n\n");
            continue;    // 结束本次循环,开始下一次循环 
        }
    
        switch(score/10) {   // 使用switch进行分数等级判断 
            case 10:
            case 9:        grade=A; break;
            case 8:        grade=B; break;
            case 7:        grade=C; break;
            case 6:        grade=D; break;
            default:    grade=E;
        }
        
        printf("等级为: %c\n\n", grade);
    }
    return 0;            
}
    

技术图片

理解控制语句continue和break的功能

// 对比demo5_1.cpp和demo5_2.cpp,理解控制语句continue和break的功能 
#include <stdio.h>
int main() {
    int i;
    
    // 在循环语句中使用continue 
    for(i=1; i<=5; i++) {
        if (i%3 == 0)  // 如果i是3的倍数,则结束本次循环,开始下一次循环 
            continue;
        
        printf("i=%d\n",i);
    }
    
    return 0;
} 

技术图片

 

// 对比demo5_1.cpp和demo5_2.cpp,理解控制语句continue和break的功能 
#include <stdio.h>
int main() {
    int i;
    
    // 在循环语句中使用break
    for(i=1; i<=5; i++) {
        if (i%3 == 0)  // 如果i是3的倍数,则结束整个循环 
            break;
        
        printf("i=%d\n",i);
    }
    
    return 0;
} 

技术图片

demo6-1.cpp

// 对比demo6_1.cpp和demo6_2.cpp,理解在嵌套的循环中,控制语句continue和break的功能

#include <stdio.h>
const int LINE=3;        // 定义符号常量LINE 
const int COLUME=5;        // 定义符号常量COLUME

int main() {
    int line;    // 定义变量line, 用来控制行数 
    int col;     // 定义变量col, 用来控制列数
    
    // 输出LINE行信息 
    for(line=1; line<=LINE; line++) {
        // 每一行中,利用循环,输出各列信息 
        for(col=1; col<=COLUME; col++) {
            if(col%3 == 0)  // 如果col是3的倍数,则结束本次循环,开始下一次循环 
                continue;
            
            printf("%5d", col);    
        }
        
        printf("\n"); // 每输出完一行,换行 
    }
     
    return 0;
} 

技术图片

demo6-2

#include <stdio.h>
const int LINE=3;        // 定义符号常量LINE 
const int COLUME=5;        // 定义符号常量COLUME

int main() {
    int line;    // 定义变量line, 用来控制行数 
    int col;     // 定义变量col, 用来控制列数
    
    // 输出LINE行信息 
    for(line=1; line<=LINE; line++) {
        // 每一行中,利用循环,输出各列信息 
        for(col=1; col<=COLUME; col++) {
            if(col%3 == 0)  // 如果col是3的倍数,则结束内层循环体 
                break;
            
            printf("%5d", col);
        }
        
        printf("\n"); // 每输出完一行,换行 
    }
     
    return 0;
} 

技术图片

Part 2.补足程序,使得程序运行

编程中找出五个整数中的最大数和最小数,并输出找出的最大数和最小数。

#include <stdio.h>
int main() {
    int number, max, min, n;
    
    n=1;
    printf("输入第%d个数: ", n);
    scanf("%d", &number);
    
    max = number;
    min = number;
    
    for(n=2;n<=5;){
         printf("输入第%d个数: ", n);
        scanf("%d", &number);
        
        if(number>=max)
            max = number;
        else if(number<=min)
            min = number;
        n++; 
    }
    
    printf("最大数为: %d\n", max);
    printf("最小数为: %d\n", min);
    
    return 0;
} 

运行结果
技术图片

 

Part 3.

编程输出101~200之间的所有素数,并输出这一区间内的素数个数。

#include<stdio.h>
#include <math.h>
int isprime(int n)

{    //返回1表示判断为质数,0为非质数,在此没有进行输入异常检测

    float n_sqrt;

    if(n==2 || n==3) return 1;

    if(n%6!=1 && n%6!=5) return 0;

    n_sqrt=floor(sqrt((float)n));

    for(int i=5;i<=n_sqrt;i+=6)

    {

        if(n%(i)==0 | n%(i+2)==0) return 0;

    }

        return 1;

}

int main()
{
    int num=0;
    int t=0;
    int i; 
    for( i=101 ; i<=200 ; ++i )
    {
        if(isprime(i))
        {
            num++;
            printf("%2d  ",i);
            t++;
            if(t==4)
            {
                printf("\n");
                t=0;
            }
        }
    }
    return 0;
 } 

技术图片

 

#include<stdio.h>          /*输入输出头文件*/
int main()          /*空类型:主函数*/
{
    int a,b;          /*定义变量的数据类型为整型*/
    for(a=0;a<=4;a++)         /*确定行数*/
    {
        for(b=4-a;b>=0;b--)         /*确定空格数量*/
            printf(" ");
        for(b=1;b<=a*2+1;b++)         /*确定每一行星号数量*/
            printf("*");
        printf("\n");         /*换行*/
    }
    return 0;
    
}

运行结果

技术图片

实验总结:continue语句是结束本次循环,开始下一次循环且continue只能在循环结构中,而不能用于其他控制结构。

break语句只能用于switch或循环结构中。

虽然很难,但是现在感觉慢慢融进去了,从什么都不懂到开始开始慢慢的懂,这种感觉真好,继续努力。

 

实验三

标签:c语言程序   观察   成绩   使用   循环   demo   功能   结构   a+b   

原文地址:https://www.cnblogs.com/dejizhuoma4637/p/10720920.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!