实验3 C语言分支语句和循环语句编程应用

实验一:

#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;
}

实验二:

#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;
}

实验三:

#include <stdio.h>
int main(){
int n = 0;
for(int i=101;i<=200;i++){
for(int j=2;j<i;j++){
if(i%j==0){break;}
else{if(j==i-1){n++;printf("%5d",i);
if(n%5==0){printf("\n");}}}}}
printf("\n");
printf("101到200之间一共有%d个素数\n",n);
return 0;}

实验四:

1.如何取出数位上为奇数的数字:1.每次都将数字的最后一位取出,然后去除数字末位形成新的数字,以此循环,可取出所有数字。

                                                      2.对每次取得的数进行对二取余的操作,判断为奇数,然后输出。

2.如何确保构成的新数中,原先的高位仍在高位,原先的低位仍在低位:借助与十的几次方相乘的方式,对取出的数字进行排序。

         即第n次取出的数应乘以十的n-1次方,即可实现原先的高位仍在高位,原先的低位仍在低位。

#include<stdio.h>
#include<math.h>
int main(){
int m,n;
printf("Enter a number:");
while(scanf("%d",&n)!=EOF){
int i=0,s=0;
do{m=n%10;
if(n%2!=0){s=s+m*pow(10,i);
i++;}
n=n/10;}
while(n!=0);
printf("new number is:%d",s);
printf("\n"); 
printf("Enter a number:");}}

实验五:

#include<stdio.h>
int main(){
int i=1;
int n;
float s=0,h=1;
printf("Enter n(1~10):");
while(scanf("%d",&n)!=EOF){
for(;i<=n;i++){
h=h*i;
if(i>=2) h=-1*h;
s=s+1/h;}
printf("n=%d,s=%f\n",n,s);
printf("Enter n(1~10):");}
}
 

实验六:

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

 

posted @ 2020-11-12 19:36  Lover_1031  阅读(122)  评论(0编辑  收藏  举报