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;
}
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.实验任务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;
}
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;
}
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; }