第三次实验

 

 

 

 

 

part 1:验证性内容

  用 if else 语句 用if 的嵌套语句
判断三角形类型
 1 #include <stdio.h>
 2 int main( )
 3 {
 4   double a,b,c;
 5   scanf("%lf %lf %lf",&a,&b,&c);
 6   if(a+b>c&&b+c>a&&a+c>b)
 8     {
 9     if (a==b&&a==c)
10       printf("构成等边三角形\n");
11         else if (a==b||b==c||a==c)
12           printf("构成等腰三角形\n");
13             else 
14               printf("构成一般三角形\n");
15        }
16   else 
17   printf("不构成三角形\n");
18   return 0;
19 }

 

#include <stdio.h>
int main( )
{
  double a,b,c;
  scanf("%lf %lf %lf",&a,&b,&c);
  if(a+b>c&&b+c>a&&a+c>b)
  {
    if (a==b||a==c||b==c)
   {  if (a==b&&b==c&&a==c)
      printf("构成等边三角形\n");
      else 
      printf("构成等腰三角形\n"); 
   }
        else
        printf("构成一般三角形\n");
  }
          else
          printf("不构成三角形\n");
    return 0;
}
      

 

  这个没有需要多说的,不过周宇晟同学博客的格式真的很好看于是借鉴了一下,方便对比着比较(我的2忘了标注行啦) 随着写代码的过程中,反而会慢慢捋清了自己的思路,最外层先是对是否构成三角形进行判断,再根据是否满足a==b||……来判断是否为等边or等腰三角形,否则为一般,最内层判断是等腰还是等边这样。

 

     关于此题个人的理解就是这是说循环的判断条件为输入了有效的abc的值,则逻辑真进行循环下一次判断再次输入的abc的值,但这里有个疑问?为什么第二种写法更加合理呢?是因为分开输入不易错吗
判断三角形类型循环语句
 1 #include <stdio.h>
 2 int main( )
 3 {
 4   double a,b,c;
 5   printf("输入三角形三边\n");
 6   while(scanf("%lf %lf %lf",&a,&b,&c))
 7   {
 8     if(a+b>c&&b+c>a&&a+c>b)
 9   {
10       if (a==b&&b==c&&a==c)
11       printf("构成等边三角形\n");
12       else if(a==b||b==c||a==c)
13       printf("构成等腰三角形\n");
14       else
15       printf("构成一般三角形\n");
16   }
17       else
18       printf("不构成三角形\n");
19           
20       printf("输入三角形三边\n");
21   }
22     return 0;
23 }
24       

 

 
 1 #include <stdio.h>
 2 int main( )
 3 {
 4   double a,b,c;
 5   printf("输入三角形三边\n");
 6   while(scanf("%ld",&a)&&scanf("%ld",&b)&&scanf("%ld",&c))
 7   {
 8     if(a+b>c&&b+c>a&&a+c>b)
 9   {
10       if (a==b&&b==c&&a==c)
11       printf("构成等边三角形\n");
12       else if(a==b||b==c||a==c)
13       printf("构成等腰三角形\n");
14       else
15       printf("构成一般三角形\n");
16   }
17       else
18       printf("不构成三角形\n");
19           
20       printf("输入三角形三边\n");
21   }
22     return 0;
23 }
24       

 

运行结果   

 

 

 

   
   
   
 

 

 
 
#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;
 }
      

 

#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并不会影响外层循环  
 
#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;
}

 

#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;
}

 

运行结果

 

 

     
 
#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;
}

 

#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;
}

 

 

 

prat2 :补足程序

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

结果

 

part3

#include<stdio.h>                  
#include<stdlib.h>                      
#include<math.h>                    
int main()                        
{
   int n,i,m;
   for(n=101;n<=200;n++)
  {
   m=sqrt(n);
   for(i=2;i<=m;i++)  
   if(n%i==0) 
   break;
   if(i>m)
   printf("%-4d",n);
  } 
  
    return 0;
}
  

结果

有作参考且关于计算素数个数未写,后续再修改补充。

#include<stdio.h>
int main()
{
    int line,col;
    for(line=1;line<=5;line++)
  {
      for(col=5-line;col>=1;col--)
  {
       printf(" ");
  }
  
  for(col=1;col<=2*line-1;col++)
  {
   
     printf("*");
    
  }
     printf("\n");
  }
      return 0;
}
  

做到part3 很费力了= =掌握的相当糟糕

 

posted @ 2019-04-14 11:08  吃瓜小老弟  阅读(136)  评论(2编辑  收藏  举报