实验三
#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; }

#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() % 32; // 生成一个0~99之间的随机整数 printf("%3d", x); } printf("\n"); return 0; }

task2
//猜猜你的Lucky Day #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int x,i; int ans1; srand(time(0)); x = rand()%(31)+1; printf("猜猜2021年5月哪一天会是你的lucky day\n开始啦,你将有三次机会,猜叭(1~31):"); scanf("%d",&ans1); for(i=1;i<3;i++) { if(x>ans1) { printf("早了,你的幸运日还没到呢\n再猜:"); scanf("%d",&ans1); } if(x<ans1) { printf("晚了,你的幸运日已经过了\n再猜:"); scanf("%d",&ans1); } if(x==ans1) { printf("猜中了\n"); break; } } if(i==3) printf("次数用完了。5月,你的lucky day是%d号",x); return 0; }

task3
#include <stdio.h> #include <math.h> int main(){ long s; int n; printf("Enter a number: "); while(scanf("%ld",&s)!=EOF){ double ans=0,i=0; while(s/10.0!=0){ n=s%10; s/=10; if(n%2!=0){ ans += n * pow(10.0,i); i++; } } printf("new number is:%.0lf\n",ans); printf("Enter a number: "); } return 0; }

task4
// 一元二次方程求解(函数实现方式) // 重复执行, 直到按下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); } } }

否。方程有两根,一次只能执行一条return语句。
task5
#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) { double k,sign=1,s1=0;//定义一个控制符号的变量 for (int i = 1; i<=n ; i++){ k=1; for (int j = 1; j<=i ; j++) { k*=j;//求阶乘 } s1+=sign/k; sign*=(-1);//每一循环改变符号 } return s1; }

task6
#include <stdio.h> int isPrime(int x); int main(){ int k=0,p=1,i; for(i=101;i<=200;i++){ if(isPrime(i)){ printf("%4d",i); k++; p++; } if(p%6==0){ printf("\n"); p=1; } } printf("\n100-200之间素数个数为: %d",k); return 0; } int isPrime(int x){ int n,k; if(x<2) k=0; for(n=2;n<=x;n++){ if(x%n==0){ k=0; break; } } if(n>=x) k=1; return k; }

此部分较难,知识点多,需多加整理
                    
                
                
            
        
浙公网安备 33010602011771号