实验3

#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 i,n,t; 
    int k=0;
    for(n=101;n<=200;n++){
        for(i=2;i<n;i++)
        {
            t=n%i;
            if(t==0)
            break;
        }
        
        if(i==n){
          printf("%6d",n);
          k++;
         if(k%5==0)
          printf("\n");
          }
       
          
     }  
     printf("素数的个数为:%d\n",k);  
     
     return 0; 
          
}    

#include<stdio.h>
int main(){
    long s,t=0,p=1;
    int m;
    printf("请输入数字:");
    scanf("%ld",&s);
    
    while(s>0)
    
    {   
        m=s%10;
        if(m%2!=0)
        {
           t=t+p*m;
           p=p*10;
        }
        s=s/10;
        
    }
    printf("%ld",t);
    
    
    return 0;
}

问题1:通过取余和C语言中整数和整数相除还是整数,把各位数字取出来,再判断是否为奇数。  
问题2:通过变量p,实现原先的高位仍在高位,低位仍在低位。  
#include<stdio.h>
int main(){
    int n;
    double s=0;
    double t=-1,T=1,i;
    printf("Enter n(1~10):");

    while(scanf("%d",&n)!=EOF){
    
    
        for(i=1;i<=n;i++){
          T=T*i;
          t=t*(-1);
          s=s+t*1.0/T;
         }
         
              printf("n=%d,s=%f\n",n,s);
              printf("Enter n(1~10):");
          
          
        }

    
    return 0;

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
 int main(){
 int x,answer,i;
 
 
 srand(time(0));
 x= rand()%31+1;

 printf("猜猜2020年12月哪一天会是你的Luck day");
 printf("开始喽,你有三次机会,猜吧(1~31):");
for (i=1;i<=3;i++)
{
 scanf("%d",&answer);
 if(answer>x)
    printf("你猜的日期晚了,luck day悄悄溜到前面了");
 else if(answer<x)
    printf("你猜的日期早了,luck day 还没来呢");
 else
    break;
}

if(i==3)
printf("次数用完了,你的luck day 是%d",x);
   
    return 0;
 
 
}

实验总结:

通过实验3,4,5,6进一步加深了对循环语句for,while的使用,以及它们的嵌套使用,第一次使用循环语句还是挺困难的,想了很长时间也没有思路,后来借鉴了一下书上的例题,才自己初步写了出来,经过不断的改正,慢慢改进。

尤其是for语句的执行顺序,第一次使用的时候顺序没整明白,导致编写的不对,还有如何实现运行时连续输入多组数据,而不是输入一组后就截至运行了,实验5我不会,

还有实验3换行的时候第一次做的时候运行结果中间空了好多行,是因为if(k%5==0)没有放在大括号里,在输出5的倍数的个数时,一直都在循环判断,一直都符合条件。

 
感觉C语言好难啊啊啊啊啊!!!  
   
   
posted @ 2020-11-18 22:17  殷富宇  阅读(165)  评论(0)    收藏  举报