实验3 C语言分支语句、循环语句、函数综合应用编程-1

1.实验任务1:

思考:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define N 5

int main()
{
int x,n;

srand(time(0));

for(n=1;n<=N;n++){
x=rand()%31+1;
printf("%3d",x);
}

printf("\n");

return 0;
}

实验3 C语言分支语句、循环语句、函数综合应用编程-1

 

 

 

2.实验任务2:

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

int main()
{
int x,n,y;

srand(time(0));

x=rand()%31+1;

printf("猜猜2021年5月哪一天会是你的luck day\n");
printf("\n");
printf("开始喽,你有三次机会,猜吧(0~31):");

for(n=1;n<=3;n++)
{
scanf("%d",&y);
printf("\n");
if(y<x){
printf("你猜的日期早了,luck day还没到呢\n");
}
else if(y>x){
printf("你猜的日期晚了,luck day悄悄溜到前面啦\n");
}
else exit(0);
printf("\n");
if(n<3) printf("再猜(1~31):");

}

printf("次数用完啦,偷偷告诉你:5月,你的luck day是%d号",x);

return 0;
}

实验3 C语言分支语句、循环语句、函数综合应用编程-1

 

3.实验任务3:

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
int x,N,m,t,T;
unsigned long n;

while
( printf("Enter a number:"),scanf("%u=\n",&n)!=EOF)
{

if(n<0)
{
exit(0);
}

x=0,t=0;
while(n!=0)
{
m=n%10;
if(m%2==0)
{
goto out;
}
else
{
T=pow(10,t);
x+=m*T;
t++;
}
out:
n=n/10;
}

printf("new number:%d\n\n",x);
}
return 0;
}

实验3 C语言分支语句、循环语句、函数综合应用编程-1

 

4.实验任务4:

#include<math.h>
#include<stdio.h>

void solve(double a,double b,double c);

int main()
{
double a,b,c;
printf("Enter a,b,c:");
while(scanf("%lf%lf%lf",&a,&b,&c)!=EOF){
solve(a,b,c);
printf("Enter a,b,c:");
}

return 0;
}

void solve(double a,double b,double c){
double x1,x2;
double delta,real,imag;

if(a==0)
printf("not quadratic equation.\n");
else{
delta=b*b-4*a*c;

if(delta>=0){
x1=(-b+sqrt(delta))/(2*a);
x2=(-b-sqrt(delta))/(2*a);
printf("x1=%.2f,x2=%.2f/n",x1,x2);
}
else{
real=-b/(2*a);
imag=sqrt(-delta)/(2*a);
printf("x1=%.2f+%.2fi,x2=%.2f-%.2fi\n",real,imag,
real,imag);
}
}
}

思考:

1、在开头定义,在结尾声明,在主函数中调用,函数声明时只需写出形参类型,函数定义时必须写出形参类型和变量名,不确定的量应该作为形式参量,返回值应该是int型。不可以

2、对形式参数进行处理的步骤应该在内部做。

3、先对a进行判断其是否为0,如果为0则不是二次函数,这样就不执行二次函数的计算过程,再用if判断delta大于零还是小于零在判断根的情况。

4、在while()中进行嵌套即可。

5.实验任务5:

#include<stdio.h>
#include<math.h>
double fun (int n);

int main()
{
int n;
double s;

printf("Enter n(1~10):");
while(scanf("%d",&n)!=EOF){
s=fun(n);
printf("n=%d,s=%f\n\n",n,s);
printf("Enter n(1~10):");
}

return 0;
}

double fun(int n){
int i;
double x=0,y=1;


for(i=1;i<=n;i++)
{
x=x+pow(-1,i-1)/y;
y=y*(i+1);
}
return x;
}

实验3 C语言分支语句、循环语句、函数综合应用编程-1

6.实验6:

#include <stdio.h>
#include <math.h>

int isPrime(int n);
int main()
{
    int n,m=0;
    
    for(n=101;n<=200;n++)
    {
        if(isPrime(n))
        {
            printf("%4d",n);
            m++;
            if(m%5==0)
                printf("\n");
        }
    }
    
    printf("\n\n 100~200之间的素数个数为:%d",m);
    
    return 0;
}

int isPrime(int n)
{
    int i;
    for(i=2;i<=sqrt(n);i++)
        if(n%i==0)
            return 0;
        
        return 1;
}

实验3 C语言分支语句、循环语句、函数综合应用编程-1

 

上一篇:麦叔编程-深度神经网络-学习笔记-2


下一篇:一个one-bit delta-sigma ADC的估计过程