实验三
实验一
#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; printf("%3d", x); } printf("\n"); return 0; }
实验二
#include<stdio.h> #include<stdlib.h> #include<time.h> int main(){ int x, n, a; srand(time(0)); x = rand() % 31 + 1; n = 0; printf("猜猜2021年5月哪一天是你的luck day?\n开始喽,你有三次机会,猜吧(1~31):"); while(n<3){ scanf("%d", &a); if (a==x) { printf("猜对了!"); goto out; } else if (a<x) { if (n<2){ printf("\n"); printf("你猜的日期早了,luck day在后头。\n再猜:"); } else{ printf("\n"); printf("你猜的日期早了,luck day在后头。"); } } else { if (n<2){ printf("\n"); printf("你猜的日期晚了,luck day在前头。\n再猜:"); } else{printf("\n"); printf("你猜的日期晚了,luck day在前头。"); } } n++ ; } if (n<2) printf("\n"); else printf("\n"); printf("次数用完咯,偷偷告诉你:五月,你的幸运日是%d号", x); out: return 0; }
实验三
#include<stdio.h> int main(){ unsigned long x, X; int a, s, N, t, i; while(printf("Enter a number:"),scanf("%u", &x)!=EOF) { X = x; for(N = 0;X>0;N++){ X = X/10; } for(t=0,a=0,i=1,s=0;t<N;t++){ a=x % 10; x=x / 10; if (a%2){ s = s + a*i; i = i * 10; } } printf("new number=%d\n\n", s); } return 0; }
实验四
#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); } } }
否,solve函数的返回值是两个根,不适用于主函数
实验五
#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 s=1,x=1; int i; if(n==1) return 1; else{ for(i=2;i<=n;i++){ x=-x*1/i; s=s+x; } return s; } }
实验六
#include <stdio.h> #include <math.h> int isPrime(int x); int main() { int i,m,n; i=101,m=0; for(;i<=200;i++) { if(isPrime(i)) { printf("%d ",i); m++; n++; if(n==5) { printf("\n"); n=0; } } } printf("\n100~200之间的素数为:%d\n",m); return 0; } int isPrime(int x) { int i=0,n=0; n=sqrt(x); for(i=2;i<=n;i++) { if(x%i==0) { return 0; } } return 1;
实验七
改变了一个简单的第十行停止下移
#include <stdio.h> #include <stdlib.h> #include <windows.h> void printCharMan(int line, int col); // 函数声明 void printSpaces(int n); // 函数声明 int main() { int line, col; for(line=5, col=5; col<=60; col++,line++) { printCharMan(line, col); Sleep(50); // 暂停50ms system("cls"); // 清除屏幕 if (line >10){ line--; } } } // 打印n个空格 void printSpaces(int n){ int i; for(i=1; i<=n; i++) printf(" "); } // 在第line行第col列打印一个字符小人 void printCharMan(int line, int col) { int i, j; // 打印line-1行空行 for(i=1; i<=line-1; i++) printf("\n"); // 打印col-1个空格 printSpaces(col-1); // 在第line行、第col列打印字符小人的头 printf(" O \n"); // 打印col-1个空格 printSpaces(col-1); // 在第line行、第col列打印字符小人的身体 printf("<H>\n"); // 打印col-1个空格 printSpaces(col-1); // 在第line行、第col列打印字符小人的腿 printf("I I\n"); }
实验总结
1.学到了如何判断素数
2.对于循环语句和条件语句有了更多理解
3.本来想对实验七实现一个到第十行反弹向上,才疏学浅,无法实现。