while循环例题

75 阅读1分钟

(一)while循环实例:

1. 1+1/2+1/3+1/4+......+1/19

2. 1-1/2+1/3-1/4+1/5......+1/19

3.随机输入一个数,判断是否是素数?

例题(一):

  1. 1+1/2+1/3+1/4+......+1/19的代码:
#include <stdio.h>
int main(){
	double s = 0;
	int i = 1;
	while(i <= 19){
		printf("%d\n", i);
		s = s+1.0/i;
		i++;
	}
	printf("s=%f\n",s);
	
	return 0;
}

2.运行结果如下:

image.png

例题(二):

1.1-1/2+1/3-1/4+1/5......+1/19的代码:

#include <stdio.h>
int main(){
	double s = 0;
	int i = 1;
	while(i <=19 ){
		printf("%d\n", i);
		if(i%2 == 0){
			s -= 1.0/i;
		} else {
			s += 1.0/i; 
		}
		i++;
	}
	printf("s=%f\n",s);
	
	return 0;
}

2.运行结果如下:

image.png

例题(三):

1.随机输入一个数,判断是否是素数?的代码:

#include <stdio.h>
#include <math.h>  // 用于sqrt函数,优化判断效率

// 判断一个数是否为素数的函数
int isPrime(int num) {
    // 小于2的数不是素数
    if (num <= 1) {
        return 0;
    }
    // 2是素数
    if (num == 2) {
        return 1;
    }
    // 偶数不是素数(除了2)
    if (num % 2 == 0) {
        return 0;
    }
    // 只需判断到sqrt(num)即可,减少循环次数
    int sqrtNum = (int)sqrt(num);
    for (int i = 3; i <= sqrtNum; i += 2) {
        if (num % i == 0) {
            return 0;  // 能被整除,不是素数
        }
    }
    return 1;  // 是素数
}

int main() {
    int num;
    printf("请输入一个整数:");
    scanf("%d", &num);
    
    if (isPrime(num)) {
        printf("%d是素数\n", num);
    } else {
        printf("%d不是素数\n", num);
    }
    
    return 0;
}

2.运行结果如下:

(一)是素数的情况下:

image.png

(二)不是素数的情况下:

image.png