实验3 C语言分支语句、循环语句、函数综合应用编程-1
2021/4/14 22:29:30
本文主要是介绍实验3 C语言分支语句、循环语句、函数综合应用编程-1,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
实验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; printf("%3d",x); } printf("\n"); return 0; }
实验1_1
//生成N个1~31之间的随机整数,并打印输出 #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
//猜猜你的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<2;i++) { if(x>ans1) { printf("早了,你的幸运日还没到呢\n再猜:"); scanf("%d",&ans1); } if(x<ans1) { printf("晚了,你的幸运日已经过了\n再猜:"); scanf("%d",&ans1); } if(x==ans1) { printf("牛啊,随机的都能猜到,你是神仙叭"); break; } } if(i==2) printf("没想到叭,系统给你随机出来的幸运日是幸运日是%d",x); return 0; }
实验3
//取出奇数并保持原位 #include <stdio.h> int main() { long long n; int x=0,y=0; while(printf("Enter a number:"),scanf("%ld",&n)!=EOF) { //先从低位取出所有奇数 while(n!=0) { if(n%2!=0) { x=x*10+n%10; n/=10; } n/=10; } //将取出的奇数倒过来 while(x!=0) { y=y*10+x%10; x/=10; } printf("new number is:%d\n",y); x=0,y=0; } return 0; }
实验4
// 一元二次方程求解(函数实现方式) // 重复执行, 直到按下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只能返回一个值,无法同时返回x1,x2的值。
实验5
#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 x,y,p=1,q=1; double sum=0; for(y=1;y<=n;y++) { for(x=1;x<=n;x++) { p=p*x; } sum+=q*(1/p); q=-q; } return sum; }
实验6
//输出101~200之间的素数,并统计个数 #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; }
实验7
我做了间隔变色的尝试,让字符小人列阵在每隔1s就从color f5变到color f9
移动的话因为时间关系暂时还没有做尝试,大概想了一下也应该是整体加一个循环然后把system("cls")用进去
以下为间隔变色的代码
/*字符小人列阵间隔变色*/ #include <stdio.h> #include <stdlib.h> #include <windows.h> int main() { int i,m,n,x,y; system("color f5"); //打印第一排 m=8; for(i=0;i<=m;i++) printf(" o "); if(i==9) printf("\n"); n=8; for(i=0;i<=n;i++) printf("<H> "); if(i==9) printf("\n"); x=8; for(i=0;i<=x;i++) printf("I I "); if(i==9) printf("\n"); //打印第二排 printf(" o"); m=5; for(i=0;i<=m;i++) printf(" o"); if(i==6) printf("\n"); printf(" <H>"); n=5; for(i=0;i<=n;i++) printf(" <H>"); if(i==6) printf("\n"); printf(" I I"); n=5; for(i=0;i<=n;i++) printf(" I I"); if(i==6) printf("\n"); //打印第三排 printf(" o"); m=3; for(i=0;i<=m;i++) printf(" o"); if(i==4) printf("\n"); printf(" <H>"); m=3; for(i=0;i<=m;i++) printf(" <H>"); if(i==4) printf("\n"); printf(" I I"); m=3; for(i=0;i<=m;i++) printf(" I I"); if(i==4) printf("\n"); //打印第四排 printf(" o"); m=1; for(i=0;i<=m;i++) printf(" o"); if(i==2) printf("\n"); printf(" <H>"); m=1; for(i=0;i<=m;i++) printf(" <H>"); if(i==2) printf("\n"); printf(" I I"); m=1; for(i=0;i<=m;i++) printf(" I I"); if(i==2) printf("\n"); //打印第五排 printf(" o\n <H>\n I I\n"); while(i=1) { Sleep(1000); system("color 9"); Sleep(1000); system("color f5"); } return 0; }
其实没有做很大的变动,就只是在原来的代码基础上的结尾添加了一个循环
实验总结:
1.不知道为什么莫名觉得自己的实验6有点繁琐,具体位置应该是在实现隔五个数空一行那里,我暂时只能想到用循环来写,不知道还有没有其他的写法;
2.实验7没有想的那么难,理解那两个函数就问题不大,还挺好玩的;
3.实验6那个素数的函数还是想了挺久,尝试了好多次然后结合书上才想出来,太难了,自己去设计算法然后再把它用代码实现(尤其实验3,要把流程想清楚,先取再倒);
4.实验2也试错了好几次,break加错了位置就很离谱
以上.
这篇关于实验3 C语言分支语句、循环语句、函数综合应用编程-1的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-25【机器学习(二)】分类和回归任务-决策树(Decision Tree,DT)算法-Sentosa_DSML社区版
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享