C语言实验报告 三、四

实验名称

实验三  分支结构和循环结构程序设计(1)

实验四  分支结构和循环结构程序设计(2)

实验目的和要求

    1. 理解并掌握关系运算符、逻辑运算符及其表达式的使用;
    2. 熟练掌握if语句、switch语句、while语句、do—while语句和for语句的用法;
    3. 理解break语句和continue语句的作用;
    4. 掌握循环嵌套的控制逻辑和循环嵌套程序设计。

实验内容

  1. 输入并运行第3章例3-18、例3-19中的程序,理解if语句和switch语句控制逻辑。
  2. 输入一百分制成绩,输出成绩等级A、B、C、D、E。90分以上为A,80~89为B,70~79分为C,60~69分为D,60分以下为E。要求程序能处理错误的输入数据。分别用if语句和switch语句实现。
  3. 输入一个不小于3的正整数,判断是否是素数,若是则输出“Yes”,否则输出“No”。
  4. 输入一个正整数,求该整数各位数字的累加和。
  5. 利用公式:π/4=1-1/3+1/5-1/7+……,求π的近似值,直到最后一项的绝对值小于10-6为止。(fabs(t)表示t的绝对值,1e-6=1*10-6)。
  6. 用迭代法求:。迭代公式为:。要求前后两次求出的x的差的绝对值小于10-6。
  7. 一个数如果恰好等于它的因子之和,这个数就称为完数。例如,6是完数,因为6=1+2+3。编程求1000之内的所有完数,并按下面格式输出其因子:6 its factors are 1,2,3
  8. 在C语言允许的整数范围内验证哥德巴赫猜想,即任意大于6 的偶数都可以表示为两个素数之和,如:100=3+97。(先思考,在函数实验时实现)

主要仪器设备

台式或笔记本电脑

实验记录(写出实验内容中2,5,6,7的程序代码和运行结果)(可分栏或加页)

2、输入一百分制成绩,输出成绩等级A、B、C、D、E。

代码一:if 语句

#include <stdio.h>

void main()

{

float score;

printf("Input your score=?\n");

scanf ("%f",&score);

if (score>=90)

printf("Your level is A");

else if((score<90)&&(score>=80))

printf("Your level is B");

else if((score<80)&&(score>=70))

printf("Your level is C");

else if((score<70)&&(score>=60))

printf("Your level is D");

    else if(score<60)

    printf("Your level is E");

else if((score>100)||(score<0))

printf("Your data is error!");

printf("\n");

return 0;

}

代码二:switch语句

#include<stdio.h>

int main()

{

int grade,a,i;

printf("Please input the grade:");

scanf("%d",&grade);

a=grade;

    if(90<=a&&a<=100) i=1;

else if(80<=a&&a<=89) i=2;

else if(70<=a&&a<=79) i=3;

else if(60<=a&&a<=69) i=4;

else if(0<=a&&a<60) i=5;

switch(i)

{

case 1:

printf("A");

break;

case 2:

printf("B");

break;

case 3:

printf("C");

break;

case 4:

printf("D");

break;

case 5:

printf("E");

break;

default:

printf("Input error");

break;

}

return 0;

 }

5、利用公式:π/4=1-1/3+1/5-1/7+……,求π的近似值,直到最后一项的

绝对值小于10-6为止。(fabs(t)表示t的绝对值,1e-6=1*10-6)。

#include<stdio.h>

int main()

{

 double pi = 0.0, t = 1.0, n = 1.0, i = 1.0;

    while (fabs(t)>=1e-6)

{

n=n+2;

pi=pi+t;

i = -i;

t = i / n;

     }

    pi = pi * 4;

    printf("pi = %lf\n",pi);

   return 0;

}

6、用迭代法求使得前后两次求出的x的差的绝对值小于10-6。

#include <stdio.h>

int main()

{

float a,x0,x1;

printf("Enter a number:");

scanf("%f",&a);

x0=a;

x1=(x0+a/x0)/2;

do

{

x0=x1;

x1=(x0+a/x0)/2;

}while (fabs(x0-x1)>=1e-6);

printf("The square root of%f is %f\n",a,x1);

   return 0;

}

7、一个数如果恰好等于它的因子之和,这个数就称为完数。例如,6是完数,因

为6=1+2+3。编程求1000之内的所有完数,并按下面格式输出其因子:6 its

factors are 1,2,3

# include<stdio.h>

int main()

{

int number,sum,i;

for(number=2;number<1000;number++)

{

sum=0;

for(i=1;i<number;i++)

{

if((number%i)==0)           //判断 i 是否是number的因子

{

sum=sum+i;

 }

} //此处已判断出完数

if(sum==number)

{

printf("%d its factor are:",number);

for(i=1;i<number;i++)

{

if((number%i)==0)

{

printf("%d,",i);          //判断是否是因子

}

}

printf("\n");

}

}

return 0;

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值