实验3 C语言分支语句和循环语句编程应用
实验任务1
#include<math.h>
#include<stdio.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
//输出101~200之间的所有素数,并输出素数的个数
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(){
int i,m,n,k=0;
for(n=101;n<=200;n++){
m=sqrt(n);
for(i=2;i<=m;i++)
if(n%i==0)break;
if(i>m){
printf("%6d",n);
k++;
if(k%5==0)
printf("\n");
}
}
printf("\n");
printf("101~200之间共有%d个素数",k);
return 0;
}

实验任务4
#include<stdio.h>
int main(){
long s;
int m,t,x=0,y,z;
t=0;
z=0;
printf("Enter a number:");
while(scanf("%ld",&s)!=EOF){
while(s>=1){
m=s%10;
s=s/10;
if(m%2!=0){
t=t*10+m;
}
}
while(t!=0){
x=t%10;
t=t/10;
z=z*10+x;
}
printf("New number is:%d\n",z);
printf("Enter a number:");
t=0;
z=0;
}
return 0;
}

算法思路:该数对10取余得个位数,判断其是否为奇数;该数除10,得到除去个位数的一个数字,再重复;
得到的第一个奇数乘十再加上第二个奇数;
此时得到的新数字是逆序,再逆序使它原先的高位仍在高位,原先的低位仍在低位。
实验任务5
#include<stdio.h>
int isprime(int k);
int main(){
int n,i,m=1,t=1;
double sum=0.0;
printf("Enter n(1~10):");
while(scanf("%d",&n)!=EOF) {
for(i=1;i<=n;i++){
sum+=t*1.0/isprime(i);
t=-t;
}
printf("\n");
printf("n = %d\n",n);
printf("s = %1f\n",sum);
sum=0.0;
printf("Enter n(1~10):");
}
return 0;
}
int isprime(int k)
{
int i,p=1;
for(i=1;i<=k;i++){
p=p*i;
}
return p;
}

实验任务6
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(){
int x,t,n,ret=0;
srand(time(0));
t=rand()%30+1;
x=0;
printf("猜猜2020年12月哪一天会是你的luck day");
printf("\n");
printf("开始喽,你有三次机会,猜吧(1~31):");
scanf("%d",&n);
while(x<=3){
if(n>t){
printf("你猜的日期晚了,luck day悄悄溜到前面啦:)\n");
printf("再猜:");
scanf("%d",&n);
x++;
}else if(n<t){
printf("你猜的日期早了,luck day还没到呢:)\n");
printf("再猜:");
scanf("%d",&n);
x++;
}else{
printf("Yes,it's your luck day:)\n");
ret=1;
break;
}
}
if(ret=0)
printf("次数用完啦,偷偷告诉你:12月,你的luck day是%d号",t);
return 0;
}

实验总结:
1.算法很重要,是前提
2.应该多次运行,因为某些数字它对了,但其他的不一定对,还是会有错误

浙公网安备 33010602011771号