第三次实验
实验1
//一元二次方程求解 //重复执行,直到按Ctrl+z结束 // #include<stdio.h> #include<math.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)!=EOF) { if(a==0) printf("not quadratic equation.\n\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\n",x1,x2); } else { real=-b/(2*a); imag=sqrt(-delta)/(2*a); printf("x1=%.2f+%.2fi,x2=%.2f-%.2fi\n\n",real,imag,real,imag); } } printf("Enter a,b,c: "); } return 0; }
实验2
//生成N个0-9之间的随机数,并打印输出 #include<stdio.h> #include<stdlib.h> #include<time.h> #define N 5 int main() { int x,n; srand(time(0)); n=0; do{ n++; x=rand()%10; printf("%3d",x); }while(n<N); printf("\n"); return 0; }
实验3
#include<stdio.h> #include<math.h> int main() { int m,i,a=101,k=0; while(a<=200){ m=sqrt((double)a); for(i=2;i<=m;i++) if(a%i==0)break; if(i>m){ printf("%d\t",a); k++;} a++;} printf("\n101~200之间共有%d个素数\n",k); return 0; }
实验4
#include<stdio.h> #include<math.h> int main() { int n,a,b,i,sum; printf("请输入一个长整型变量:"); scanf("%d",&n); while(n){ i=0; sum=0; while(n!=0){ a=n%10; b=a%2; if(b!=0){ sum=sum+a*pow(10.,i); i++;} n/=10;} printf("My number is:%d\n",sum); printf("请输入一个长整型变量:"); scanf("%d",&n);} return 0; }
实验5
#include<stdio.h> #include<math.h> int main() { float s,q,p,n; int t,z,k; printf("Enter n(1~10): "); scanf_s("%f",&n); while(n){ z=n; s=0.; q=1.0; p=1.0; while(n!=0){ t=n; q=1.0; for(;n!=0;n--){ p=1/n; q=q*p; } if(t%2==0) q=EOF*q; else ; s=s+q; n=t-1;} printf("n=%d,s=%f\n",z,s); printf("Enter n(1~10): "); scanf_s("%f",&n);} return 0; }
实验6
#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int x,n,i; srand(time(0)); x = rand()%32; printf("猜猜2020年12月哪一天会是你的lucky day\n"); printf("开始咯,你有三次机会,猜吧1~31:"); i=1; scanf_s("%d",&n); if(n>x||n<x){ while(i<=2){ if(n>x) printf("你猜的日期晚了,lucky day悄悄溜到前面了\n"); if(n<x) printf("你猜的日期早了,lucky day还没到呢\n"); printf("再猜1~31:"); scanf_s("%d",&n); i++;} printf("次数用完啦。偷偷告诉你:12月,你的lucky day是%d号",x);} else printf("猜对了"); return 0; }
实验4做法
(1)将得到的数除十取余,得到个位数字,依此通过循环实现对每个位置上数字的提取,对提取到的数字进行除二取余并根据余数是否为0判断该数字为奇数或偶数
(2)每次循环对提取到的数进行求和*10,实现数字位置的变换
实验总结
scanf()函数
(1)注意包含地址符&
(2)对于其中分隔的符号的注意,当未使用如[,]等分隔符时,输入时用[ ]分隔,当使用[,]分隔符时,输入端也应注意使用英文半角的[,]
对于某些需要循环使用的变量的值的初始化,可以在循环1外层包含一个循环2,在循环2中(循环1之前)对某些运行后会变化的变量进行初始化







浙公网安备 33010602011771号