当前位置: 首页 > news >正文

高级程序语言设计个人作业第四次

这个作业属于哪个课程 <班级的链接>
这个作业要求在哪里 <作业链接>
学号 092300303
姓名 池博洋

@

目录
  • 运行程序
    • (1)
    • (2)
  • 求π近似值
    • while方式:
    • do while方式:
  • 实现逻辑表达式中的运算符
  • for循环输出六行
  • for循环计算值
  • for循环数组赋值求和
  • 分支程序
    • if-else分支
    • switch语句
    • 条件运算符:
  • 循环程序再循环中用break和continue语句
  • 求100~200间的全部素数
  • 6.16
    • 6.16-1
    • 6.16-5
    • 6.16-7
    • 6.16-10
    • 6.16-13
    • 6.16-16
    • 6.16-18
  • 7.12
    • 1
    • 2
    • 4
    • 5
    • 7

作业基本信息

运行程序

(1)

fee18ebb9ec55de4c7d36acbe0092ed4

(2)

2d9383730ec14e8b863f32bf631670e9

求π近似值

while方式:

点击查看代码
#include <stdio.h>
#include <math.h>int main() {double sum = 0.0;int k = 0;double term = 1.0;while (fabs(term) >= 1e-4) {term = pow(-1, k) / (2 * k + 1);sum += term;k++;}double pi = 4 * sum;printf("π的近似值: %f\n", pi);return 0;
}

结果:
d641b0140b0ec3102c0dace721b6a3d3

do while方式:

点击查看代码
#include <stdio.h>
#include <math.h>int main() {double sum = 0.0;int k = 0;double term;do {term = pow(-1, k) / (2 * k + 1);sum += term;k++;} while (fabs(term) >= 1e-4);double pi = 4 * sum;printf("π的近似值: %f\n", pi);return 0;
}

结果:
QQ_1762501233646

实现逻辑表达式中的运算符

点击查看代码
#include <stdio.h>int func1() {printf("func1 executed\n");return 0;
}int func2() {printf("func2 executed\n");return 1;
}int main() {int a = 0, b = 1;// 使用 &&,左侧为假时右侧不执行if (a && func1()) {printf("Condition 1 true\n");} else {printf("Condition 1 false\n");}// 使用 ||,左侧为真时右侧不执行if (b || func2()) {printf("Condition 2 true\n");} else {printf("Condition 2 false\n");}return 0;
}

结果:
image

for循环输出六行

点击查看代码
#include <stdio.h>int main() {for (int i = 0; i < 6; i++) {for (char c = 'F'; c >= 'A' + i; c--) {printf("%c", c);}printf("\n");}return 0;
}

结果:
image

for循环计算值

点击查看代码
#include <stdio.h>int main() {int n, i, j;long s = 0, sum;printf("请输入n: ");scanf("%d", &n);for (i = 1; i <= n; i++) {sum = 0;  // 计算第i项(1+2+...+i)for (j = 1; j <= i; j++) {sum += j;}s += sum; // 累加所有部分和}printf("s = %ld\n", s);return 0;
}

结果:
image

for循环数组赋值求和

点击查看代码
#include <stdio.h>int main() {int arr[8];int sum = 0;// 赋值for (int i = 0; i < 8; i++) {arr[i] = i + 1; // 赋值1到8}// 输出printf("数组元素: ");for (int i = 0; i < 8; i++) {printf("%d ", arr[i]);}printf("\n");// 求和for (int i = 0; i < 8; i++) {sum += arr[i];}printf("数组和: %d\n", sum);return 0;
}

结果:
image

分支程序

if-else分支

点击查看代码
#include <stdio.h>int main() {int score;printf("输入分数: ");scanf("%d", &score);char grade;if (score >= 90) {grade = 'A';} else if (score >= 80) {grade = 'B';} else if (score >= 70) {grade = 'C';} else if (score >= 60) {grade = 'D';} else {grade = 'F';}printf("等级: %c\n", grade);return 0;
}

switch语句

点击查看代码
#include <stdio.h>int main() {int score;printf("输入分数: ");scanf("%d", &score);char grade;switch (score / 10) {case 10:case 9:grade = 'A';break;case 8:grade = 'B';break;case 7:grade = 'C';break;case 6:grade = 'D';break;default:grade = 'F';}printf("等级: %c\n", grade);return 0;
}

条件运算符:

点击查看代码
#include <stdio.h>int main() {int a, b;printf("输入两个数: ");scanf("%d %d", &a, &b);int max = (a > b) ? a : b;printf("较大值: %d\n", max);return 0;
}

结果:
image

循环程序再循环中用break和continue语句

点击查看代码
#include <stdio.h>int main() {// 使用break:当i=5时终止循环printf("使用break:\n");for (int i = 1; i <= 10; i++) {if (i == 5) {break;}printf("%d ", i);}printf("\n");// 使用continue:当i=5时跳过当前迭代printf("使用continue:\n");for (int i = 1; i <= 10; i++) {if (i == 5) {continue;}printf("%d ", i);}printf("\n");return 0;
}

结果:

image

求100~200间的全部素数

点击查看代码
#include <stdio.h>
#include <math.h>int main() {int i, j, flag;for (i = 100; i <= 200; i++) {flag = 1;for (j = 2; j <= sqrt(i); j++) {if (i % j == 0) {flag = 0;break;}}if (flag == 1) {printf("%d ", i);}}printf("\n");return 0;
}

结果:
image

传统流程图:
开始

for i从100到200

flag = 1

for j从2到√i

如果 i % j == 0

flag = 0

break内层循环

如果 flag == 1

输出 i

结束

算法思想:
素数是指大于1且只能被1和自身整除的数。对于每个数i(100到200),检查是否能被2到√i之间的任何整数整除。如果不能,则是素数。

6.16

6.16-1

点击查看代码
#include <stdio.h>int main(void)
{char letters[26];// 在数组中存储26个小写字母for (int i = 0; i < 26; i++) {letters[i] = 'a' + i;}// 打印数组的所有内容for (int i = 0; i < 26; i++) {printf("%c ", letters[i]);}printf("\n");return 0;
}

结果:
image

6.16-5

点击查看代码
#include <stdio.h>int main(void)
{char ch;int i, j, k, n;// 提示用户输入大写字母printf("请输入一个大写字母: ");scanf("%c", &ch);// 计算行数(从A到输入字母的行数)n = ch - 'A' + 1;// 外层循环处理每一行for (i = 0; i < n; i++) {// 第一个内层循环:打印前导空格for (j = 0; j < n - i - 1; j++) {printf(" ");}// 第二个内层循环:升序打印字母for (k = 0; k <= i; k++) {printf("%c", 'A' + k);}// 第三个内层循环:降序打印字母for (k = i - 1; k >= 0; k--) {printf("%c", 'A' + k);}printf("\n");  // 换行}return 0;
}

结果:
image

6.16-7

点击查看代码
#include <stdio.h>
#include <string.h>int main(void)
{char word[100];int length, i;printf("请输入一个单词: ");scanf("%s", word);length = strlen(word);printf("倒序打印: ");for (i = length - 1; i >= 0; i--) {printf("%c", word[i]);}printf("\n");return 0;
}

结果:
image

6.16-10

点击查看代码
#include <stdio.h>int main(void)
{int lower, upper, i;long sum;printf("Enter lower and upper integer limits: ");while (scanf("%d %d", &lower, &upper) == 2 && lower < upper) {sum = 0;// 计算从lower到upper的平方和for (i = lower; i <= upper; i++) {sum += i * i;}printf("The sums of the squares from %d to %d is %ld\n", lower * lower, upper * upper, sum);printf("Enter next set of limits: ");}printf("Done\n");return 0;
}

结果:
image

6.16-13

点击查看代码
#include <stdio.h>int main(void)
{int powers[8];int i, value = 1;// 使用for循环设置数组元素的值(2的前8次幂)for (i = 0; i < 8; i++) {value *= 2;powers[i] = value;}i = 0;  // 重置索引printf("2的前8次幂: ");// 使用do while循环显示数组元素的值do {printf("%d ", powers[i]);i++;} while (i < 8);printf("\n");return 0;
}

结果:
image

6.16-16

点击查看代码
#include <stdio.h>int main(void)
{double daphne_balance = 100.0;    // Daphne的投资余额(单利)double deirdre_balance = 100.0;   // Deirdre的投资余额(复利)int years = 0;printf("年份\tDaphne余额\tDeirdre余额\n");printf("-----------------------------------\n");// 循环直到Deirdre的投资超过Daphnewhile (deirdre_balance <= daphne_balance) {years++;// Daphne: 单利,每年增加原始本金的10%daphne_balance += 100.0 * 0.10;// Deirdre: 复利,每年增加当前余额的5%deirdre_balance *= 1.05;printf("%d\t$%.2f\t\t$%.2f\n", years, daphne_balance, deirdre_balance);}printf("\n经过 %d 年,Deirdre的投资额超过了Daphne\n", years);printf("Daphne的投资额: $%.2f\n", daphne_balance);printf("Deirdre的投资额: $%.2f\n", deirdre_balance);return 0;
}

结果:
image

6.16-18

点击查看代码
#include <stdio.h>#define DUNBAR_NUMBER 150int main(void)
{int friends = 5;      // 初始朋友数量int week = 0;printf("周数\t朋友数量\n");printf("--------------\n");printf("%d\t%d\n", week, friends);// 循环直到朋友数量超过邓巴数while (friends <= DUNBAR_NUMBER) {week++;// 第N周:少了N个朋友,然后剩下的朋友数量翻倍friends = (friends - week) * 2;printf("%d\t%d\n", week, friends);}printf("\n在第 %d 周,Rabnud博士的朋友数量超过了邓巴数(%d)\n", week, DUNBAR_NUMBER);return 0;
}

结果:
image

7.12

1

点击查看代码
#include <stdio.h>int main(void)
{char ch;int space_count = 0, newline_count = 0, other_count = 0;printf("请输入字符(以#结束): ");while ((ch = getchar()) != '#') {if (ch == ' ') {space_count++;} else if (ch == '\n') {newline_count++;} else {other_count++;}}printf("空格数: %d\n", space_count);printf("换行符数: %d\n", newline_count);printf("其他字符数: %d\n", other_count);return 0;
}

结果:
image

2

点击查看代码
#include <stdio.h>int main(void)
{char ch;int count = 0;printf("请输入字符(以#结束): ");while ((ch = getchar()) != '#') {printf("'%c'-%d ", ch, ch);count++;// 每打印8个字符换行if (count % 8 == 0) {printf("\n");}}printf("\n");return 0;
}

结果:
image

4

点击查看代码
#include <stdio.h>int main(void)
{char ch;int replace_count = 0;printf("请输入字符(以#结束): ");while ((ch = getchar()) != '#') {if (ch == '.') {putchar('!');replace_count++;} else if (ch == '!') {putchar('!');putchar('!');replace_count++;} else {putchar(ch);}}printf("\n总共进行了 %d 次替换\n", replace_count);return 0;
}

结果:
image

5

点击查看代码
#include <stdio.h>int main(void)
{char ch;int replace_count = 0;printf("请输入字符(以#结束): ");while ((ch = getchar()) != '#') {switch (ch) {case '.':putchar('!');replace_count++;break;case '!':putchar('!');putchar('!');replace_count++;break;default:putchar(ch);break;}}printf("\n总共进行了 %d 次替换\n", replace_count);return 0;
}

结果:
image

7

点击查看代码
#include <stdio.h>#define BASIC_WAGE 10.00
#define OVERTIME_RATE 1.5
#define OVERTIME_HOURS 40
#define TAX_RATE1 0.15
#define TAX_RATE2 0.20
#define TAX_RATE3 0.25
#define TAX_LIMIT1 300
#define TAX_LIMIT2 450int main(void)
{float hours, gross_pay, taxes, net_income;printf("请输入一周工作的小时数: ");scanf("%f", &hours);// 计算工资总额if (hours <= OVERTIME_HOURS) {gross_pay = hours * BASIC_WAGE;} else {gross_pay = OVERTIME_HOURS * BASIC_WAGE + (hours - OVERTIME_HOURS) * BASIC_WAGE * OVERTIME_RATE;}// 计算税金if (gross_pay <= TAX_LIMIT1) {taxes = gross_pay * TAX_RATE1;} else if (gross_pay <= TAX_LIMIT2) {taxes = TAX_LIMIT1 * TAX_RATE1 + (gross_pay - TAX_LIMIT1) * TAX_RATE2;} else {taxes = TAX_LIMIT1 * TAX_RATE1 + (TAX_LIMIT2 - TAX_LIMIT1) * TAX_RATE2 + (gross_pay - TAX_LIMIT2) * TAX_RATE3;}// 计算净收入net_income = gross_pay - taxes;printf("\n工资总额: $%.2f\n", gross_pay);printf("税金: $%.2f\n", taxes);printf("净收入: $%.2f\n", net_income);return 0;
}

结果:
image

http://www.jsqmd.com/news/34572/

相关文章:

  • 什么是 Feed 流?
  • 调整 Halo2 Joe 主题友情链接页面样式
  • CF1463E Plan of Lectures
  • 基于单片机的元胞自动机仿真系统设计 - 详解
  • 251107
  • 2025年防水补漏企业TOP5:漏水维修、防水翻新、漏水检测
  • (鲜花)万宁五子棋 v0.2
  • ansible + docker compose, RustFS MNMD 架构的一键部署之道
  • 2025年海外仓服务最新推荐企业,欧洲海外仓、美国海外仓、亚马逊海外仓、TEMU海外仓、独立站海外仓服务商解析
  • 实用指南:RSA加密从原理到实践:Java后端与Vue前端全栈案例解析
  • Ubuntu 中创建全局可访问的共用目录
  • 开源 C++ QT QML 开发(十五)通讯--http下载 - 实践
  • 2025年11月不锈钢加工装饰制品优质厂家推荐榜:加工、屏风、栏杆等品类精选
  • P3978 概率论
  • 从iPhone转移到itel手机的联系人转移指南 - 实践
  • JT808,JT1078 —— AAC编码 —— 部标机语音对讲Java实现
  • DP 总结
  • 2025年11月7日
  • 【开题答辩全过程】以 爱运动健身小程序的设计与实现为例,包含答辩的障碍和答案
  • 高并发下如何保证 Caffeine + Redis 多级缓存的一致性问题?MySQL、Redis 缓存一致性问题? - 指南
  • 2025-11-07 PQ v.Next日志记录
  • [python刷题记录]-轮转数组-普通数组-中等
  • QT正在复兴?兰亭妙微带你看懂工业软件设计的新风口
  • 低代码如何真正降低企业数字化转型成本?
  • 低代码开发的核心流程
  • 字符串杂题
  • 低代码 vs 无代码:90% 的企业都分不清的核心差异
  • 轻言轻语
  • NIFI 使用HTTP 作为数据源接收数据
  • CSPS 2025 游寄 / 反思