实验三 刘子铭

实验任务1

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 5
int main() {
int x, n;
srand(time(0)); 
for(n=1; n<=N; n++) {
x = rand() % 100; 
printf("%3d", x);
}
printf("\n");
return 0;
}

 

 

 如果想生成1~31之间的整数,就将line13中的100换成32即可

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 5
int main() {
int x, n;
srand(time(0)); 
for(n=1; n<=N; n++) {
x = rand() % 32; 
printf("%3d", x);
}
printf("\n");
return 0;
}

 

 

 

 

 

 

 实验任务2

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define N 3

int main()
{
    int x,n,answer;
    
    srand(time(0));
    x=rand()%32;
    
    printf("猜猜2021年5月哪一天会是你的luck day\n开始喽,你有三次机会,猜吧(1~31):") ;
    
    for(n=1;n<=N;n++){
        scanf("%d",&answer);
        if(answer==x){
        printf("猜中了"); 
        break; } 
        else if(answer>x){ 
        printf("你猜的日期晚了,luck day悄悄溜到前面啦\n再猜(1~31):");
        } 
        else if(answer<x){
        printf("你猜的日期早了,luck day还没到呢\n再猜(1~31):") ; 
        }
    }
    if(n==4)
    printf("\n次数用完了,偷偷告诉你,你的luck day是:%d号",x); 
    return 0;
 } 

 

 

 

 

 

 实验任务3

#include<stdio.h> 
int main(){
    
    int s,i,x,S=0,n=1;
    printf("Enter a number:");
    scanf("%d",&s);
    
    for(i=1;i>0;i++){
    
    x=s%10;
    if(x%2==0)
    s=(s-x)/10;
    else{
    S=S+n*x;
    n=n*10;
    s=(s-x)/10;}
    
    if(s==0)
    break;}
    
    
    printf("new number is:%d\n",S);
    
    
    return 0;
    
}

 

 

 

 

 

 实验任务4

#include <math.h>
#include <stdio.h>
void solve(double a, double b, double c);
int main() {
double a, b, c;
printf("Enter a, b, c: ");
while(scanf("%lf%lf%lf", &a, &b, &c) != EOF) {
solve(a, b, c);
printf("Enter a, b, c: ");
}
return 0;
}
void solve(double a, double b, double c) {
double x1, x2;
double delta, real, imag;
if(a == 0)
printf("not quadratic equation.\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", x1, x2);
}
else {
real = -b/(2*a);
imag = sqrt(-delta) / (2*a);
printf("x1 = %.2f + %.2fi, x2 = %.2f - %.2fi\n", real, imag,
real, imag);
}
}
}

否,当delta>0时,方程有两个根,但函数的返回值只能有一个,所以不能返回给主调函数

 

 

 实验任务5

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

 

 

 实验任务6

#include<stdio.h>
#include<math.h>
int isPrime(int n) ;
int main(){
    int i,s,a=0;
    for(i=101;i<=200;i++){
        s=isPrime(i);
        if(s==i){
        printf("%5d",s);
        a=a+1;
    }
        if(s!=0&&a%5==0)
        printf("\n");
    }
    return 0;
    
    
}

int isPrime(int n){
    int i,m;
    m=sqrt(n);
    for(i=2;i<=m;i++)
        if(n%i==0)break;
    if(i>m&&n>1)
    return n;
    else
    return 0;    
    }

 

 

 

 

 

 

posted @ 2021-04-14 15:49  金牌小密探  阅读(67)  评论(3编辑  收藏  举报