实验3
Posted 1635154773gao-hb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验3相关的知识,希望对你有一定的参考价值。
part1.1
// 一元二次方程求解 // 重复执行, 直到按Ctrl+D或Ctrl+E结束 // #include <math.h> #include <stdio.h> #include <stdlib.h> int main() { float a, b, c, x1, x2; float delta, real, imag; printf("Enter a, b, c: "); while(scanf("%f%f%f", &a, &b, &c)) { if(a == 0) printf("not quadratic equation. "); else { delta = b*b - 4*a*c; if(delta >= 0) { x1 = (-b + sqrt(delta)) / (2*a); x2 = (-b - sqrt(delta)) / (2*a); printf("x1 = %f, x2 = %f ", x1, x2); } else { real = -b/(2*a); imag = sqrt(-delta) / (2*a); printf("x1 = %f + %fi, x2 = %f - %fi ", real, imag, real, imag); } } printf("Enter a, b, c: "); } system("pause"); return 0; }
pary1.2
// 猜数游戏 // 程序运行时自动生成1~100之间的随机数,提示用户猜 // 如果用户猜的数等于随机数,提示用户猜对了,程序结束 // 否则,如果用户猜的数小于随机数,提示用户低了,用户继续猜 // 如果用户猜的数大于随机数,提示用户高了,用户继续猜 // 程序循环运行直到用户猜对为止 #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int guessNumber; // 存放程序运行时生成的1~100之间的随机整数 int ans; // 存放用户猜的数字 srand((time(0))); // 以时间函数作为随机种子 guessNumber = 1 + rand()%100; // 生成1~100之间的随机数 do { printf("your guess number is(1~100): "); scanf("%d", &ans); if(ans < guessNumber) printf("%d is lower than the number. ", ans); else if(ans > guessNumber) printf("%d higher then the number. ", ans); }while(ans != guessNumber); printf("Congratulations. you hit it~ "); system("pause"); // 在devc中运行时,这一行可以去掉 return 0; }
part2
/* 编程找出5个整数的最大数和最小数 《C语言程序设计教程学习指导》p122实验内容(3) */ #include <stdio.h> #include <stdlib.h> int main() { int number, max, min, n; n=1; printf("输入第%d个数: ", n); scanf("%d", &number); max = number; min = number; while(n<5) { n++; printf("输入第%d个数: ", n); scanf("%d", &number); if(max<number) max = number; else if(min>number) min = number; } printf("最大数为: %d ", max); printf("最小数为: %d ", min); system("pause"); return 0; }
part3.1
#include <stdio.h> #include <math.h> int main() { int m,n,t; for(n = 101;n<=200;n++) { for(m = 2;m<sqrt(n);m++) if(n%m==0) { break; } if(m>sqrt(n)) { printf("%d ",n); t++; } } printf(" 101~200之间共有%d个素数。",t); return 0; }
part3.2(pass,真不会)
part3.3
#include <stdio.h> #include <math.h> #include <stdlib.h> double formula(int n,int a); int main() { int n,a; double s; printf("Enter n and a:"); scanf("%d%d",&n,&a); if(n<=0||a<=0) { printf("ERROR. "); } else { s = formula(n,a); printf("s = %f ",s); } system("pause"); return 0; } long assist(int x); double formula(int i,int j) { int x; double y; for(x = 1,y = 0;x<=i;x++) { y += x/(j*assist(x)); } return y; } long assist(int m) { int t; long z; for(t = 1;t<=m;t++) { z += pow(10,(t-1)); } return z; }
(有问题)
实验总结:本次相较于上次进步了不少,并且能够通过各种方式编写出程序,得到想要的结果。对于函数以及自定义函数,也能灵活运用。但实验中可能还是有部分算法没有弄清导致计算错误,也有可能是错误没找出来,请各位大佬多多指教。
以上是关于实验3的主要内容,如果未能解决你的问题,请参考以下文章
20155201 李卓雯 《网络对抗技术》实验一 逆向及Bof基础
[NTUSTISC pwn LAB 7]Return to libc实验(puts泄露libc中gadget片段定位)