实验三
任务1.
// 生成N个0~99之间的随机整数,并打印输出 #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() % 100; // 生成一个0~99之间的随机整数 printf("%3d", x); } printf("\n"); return 0; }
for循环的作用:生成五个随机的数据。
line13改为x=rand()%31
任务二
#include<stdio.h> #include<stdlib.h> #include<time.h> int main() { int x,n,a; printf("来猜猜你五月的幸运日吧\n"); printf("由此输入答案:\n"); srand(time(0)); x=rand()%31+1; scanf("%d",&a); for(n=1;n<3;n++) { if(x>a) { printf("你猜早了哦\n"); scanf("%d",&a); } else if(x<a) { printf("你猜晚了哦\n"); scanf("%d",&a); } else { printf("真的牛蛙!\n"); break; } } if(n=3) { printf("你的五月幸运日是%d号",x); } return 0; }

任务三
#include<stdio.h> int main() { long long a,b; printf("请输入你想要的数字;\n"); while(scanf("%ld",&a)!=EOF) { long long d=1; long long c=0; while(a!=0) { if((a%10)%2!=0) { b=a%10; c=c+b*d; d=d*10; } a=a/10; } printf("最终的结果是%lld\n",c); printf("do it again:\n"); } return 0; }

任务四
// 一元二次方程求解(函数实现方式) // 重复执行, 直到按下Ctrl+Z结束 #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; } // 函数定义 // 功能:求解一元二次方程,打印输出结果 // 形式参数:a,b,c为一元二次方程系数 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); } } }
否,
任务五
#include <stdio.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,k,b,j; double sum,x; int sign=1; k=1; b=1; for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { b*=j; } x=1.0/b; sum=sum+sign*x; sign=-sign; k++; } return sum; }

任务六
#include<stdio.h> #include<math.h> int isprime(int n); int main() { int i; for(i=101;i<=200;i++) { if(isprime(i)) { printf("%4d",i); } } return 0; } isprime(int n) { int k; for(k=2;k<=sqrt(n);k++) if(n%k==0) return 0; return 1; }

浙公网安备 33010602011771号