第三次实验

实验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之前)对某些运行后会变化的变量进行初始化

 

posted @ 2020-11-15 12:37  行客自多愁丶  阅读(107)  评论(0)    收藏  举报