实验三

1.代码

 1 #include<stdio.h>
 2 #include<math.h> 
 3 int main(){
 4 
 5   float a, b, c, x1, x2;
 6   float delta, real, imag;
 7     printf("Enter a, b, c: ");
 8   while(scanf("%f%f%f", &a, &b, &c) != EOF) {
 9     if(a == 0)
10       printf("not quadratic equation.\n\n");
11     else {
12       delta = b*b - 4*a*c;
13       if(delta >= 0) {
14         x1 = (-b + sqrt(delta)) / (2*a);
15         x2 = (-b - sqrt(delta)) / (2*a);
16         printf("x1 = %.2f, x2 = %.2f\n\n", x1, x2);
17 }
18       else {
19         real = -b/(2*a);
20         imag = sqrt(-delta) / (2*a);
21         printf("x1 = %.2f + %.2fi, x2 = %.2f - %.2fi\n\n", real,imag, real, imag);
22 }
23 }
24         printf("Enter a, b, c: ");
25 }
26 return 0; 
27     
28 } 

if语句需要条理清晰

结果

2.

代码

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 23
int main() {
int x, n;
srand(time(0));  // 以当前系统时间作为随机种子
n = 0;
do {
n++;
x = rand()%10;  // 生成一个0~9之间的随机整数
printf("%3d", x);
}while(n<N);
printf("\n");
return 0;
}

结果(这个程序执行时间意外的短?)

3.(半成品)

代码

 1 #include <stdio.h>
 2 #include<math.h>
 3 #include<stdlib.h>
 4 int main() 
 5 {
 6     int b,n,i,t;
 7     t=0;
 8     for(n=100;n<=200;n++)
 9     {
10       b=sqrt(n);
11       for(i=2;i<=b;i++)
12          if(n%i==0)break;
13          if(i>b&&n>1)
14            {
15            t++;
16            printf("%5d",n);}
17          else
18            continue;        
19         
20         } 
21     printf("\n");
22     printf("101-200之间一共有%d个素数\n",t);
23 return 0;
24 }

暂时还没想出怎么输出成那样3*7(再想想)

结果

4.代码

 1 #include<stdio.h>
 2 
 3 
 4 int main(){
 5      int i;
 6      long int n;
 7      
 8      printf("Enter a number:\n");
 9     while(scanf("%ld",&n)!=EOF)
10      {long int c=0;int t=1;
11        while(n!=0)
12         { 
13         
14         i=n%10;
15         if(i%2!=0)
16            {
17            c=c+i*t;
18            t=t*10;
19     }
20       
21          n=n/10;
22         }
23         printf("%ld\n",c);
24         printf("Enter a munber:\n");
25     }
26         
27          
28       
29    
30    return 0;
31    } 

(开始忽视了int型 的特殊性,想先求出长数字的位数,走了弯路。用的是类似倒序输出的方法输出的)

结果

5.代码

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int n,i,c;
 5     float t;    
 6     printf("Enter n(1~10):");
 7     while(scanf("%d",&n)!=EOF)
 8     {
 9         float s=0;
10         int m=1;
11         c=-1;
12         for(i=1;i<=n;i++)
13         {
14             m=m*i;
15             c=c*(-1);
16             t=c*1.0/m;
17             s=s+t;
18             
19         }
20         printf("n=%d,s=%f\n",n,s);
21         printf("\nEnter n(1~10):");
22     }
23     return 0;
24 }
25     

结果

6.代码(个人感觉复杂了点可以简化)

 1 /*2*/
 2 #include<stdio.h>
 3 #include<stdlib.h>
 4 #include<time.h>
 5 int main(){
 6     int x,i;
 7     int n=1;
 8     srand(time(0));
 9     x = rand()%32;
10     printf("猜猜12月哪天是你的lucky day\n");
11     printf("你有三次机会:"); 
12         while(n<=3)
13         {
14             scanf("%d",&i);
15             if(n<3)
16             {
17             if(i==x)
18             {
19               printf("有内鬼,这都能猜中\n");
20               exit(0);}
21             else if(i>x)
22              {
23              printf("这都能猜后面去\n\n");
24              printf("再给你一次机会:\n");}
25             else if(i<x)
26               {printf("这都能猜前面去\n\n");
27                printf("再给你一次机会:\n");
28                } 
29         }
30             else if(n=3)
31               {
32                 if(i>x)
33                  {
34                  printf("这都能猜后面去\n\n");
35                  printf("辣鸡你的lucky day是:%d",x);}
36                 if(i<x)
37                   {
38                   printf("这都能猜前面去\n\n"); 
39                   printf("辣鸡你的lucky day是:%d",x);}
40               
41               }
42             n++; 
43         }
44     return 0;
45 } 

结果

感觉自己写程序的时候总是容易把算法搞复杂........

posted @ 2020-11-14 09:59  togeplane  阅读(90)  评论(2)    收藏  举报