news 2026/9/2 0:02:55

C作业 四

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C作业 四

#include <stdio.h> #include <stdlib.h> typedef struct { int id; // 产地ID char name[50]; // 产地名称 int yield; // 产量(吨) } OrangeFarm; int main() { OrangeFarm new_farm; // 本次只需定义一个结构体变量用于追加 FILE *fp; // 1. 从控制台录入单条需要追加的数据 printf("--- 廉江红橙产地数据追加 ---\n"); printf("请输入新增产地信息(格式:ID 名称 产量):\n"); if (scanf("%d %s %d", &new_farm.id, new_farm.name, &new_farm.yield)!= 3) { printf("输入格式错误。\n"); return 1; } // 2. 以追加模式("a")打开文件 // "a"代表append。如果文件不存在会创建;如果存在,指针直接指向文件末尾 fp = fopen("farms.txt", "a"); // 检查文件打开是否成功 if (fp == NULL) { printf("错误:无法打开文件进行追加!\n"); return 1; } // 3. 使用 fprintf 写入新数据 // 务必保留末尾的 \n,确保下一条追加的数据能另起一行 fprintf(fp, "%d %s %d\n", new_farm.id, new_farm.name, new_farm.yield); // 4. 关闭文件 fclose(fp); printf("\n新记录已成功追加至 farms.txt 末尾。 \n"); return 0; }

#include <stdio.h> #include <string.h> #include <stdlib.h> typedef struct { int id; char name[50]; int yield; } OrangeFarm; int main(){ 銩揞装绑铱蒸泩angeFarm farms[100];// 假设最多存储100个产地 int count = 0; int deleteld; char confirm; FILE *fp; //1.读取文件内容到内存数组 fp = fopen("farms.txt","r"); if (fp == NULL) { printf("错误:无法打开 farms.txt,请确保文件已存在。\n"); return 1; / 循环读取直到文件末尾while (fscanf(fp, "%d %s %d", &farms[count].id, farms[count].name, &farms[count].yield)== 3){ count++; fclose(fp); if (count == 0){ printf("数据库为空,无数据可删除。\n"); return : //2.像题目3一样,先展示当前所有数据,每行3个并对齐printf("\n---当前廉江红橙产地列表 ---\n"); for (inti= 0:i< count; i++){ printf("[%dl%-12s",farms[il.id, farms[il.name);if ((i + 1)% 3 == 0) {printf("\n");// 每行输出3个后换行 printf("\n---------------------------\n"); //3.用户输入要删除的 ID printf("请输入要删除的产地 ID:"); scanf("%d",&deleteld); / 查找该 ID 所在的索引 int targetindex = -1; for (inti= 0;i< count; i++){ if (farmsli].id == deleteld){ targetIndex =i; break; if (targetindex==-1){printf("错误:未找到 ID 为 %d 的记录。\n",deleteld);return 0; //4.显示具体信息并进行确认 printf("\n拟删除记录详情:\n"); printf("|D: %d 名称: %s 产量: %d 吨\n" farms[targetindex].id, farms[targetindex].namefarms[targetIndex].yield);printf("警告:此操作不可撒回!确定删除吗 ?(y/n):"); getchar();//清除之前输入的换行符,防止scanf直接读取回车scanf("%c",&confirm); if (confirm != 'y'&& confirm !='Y'){ printf("操作已安全取消。\n"); return 0; //5.在数组中进行"逻辑删除” /将目标位置之后的元素全部向前移动一位for (inti= targetIndex;i< count -1; i++){farmsli] = farms[i + 1]: count--;// 总数减1 //6.重新写回文件(覆盖模式) fp = fopen("farms.txt","w"); if (fp == NULL) { printf("系统错误:无法更新文件数据。\n");return 1; for (inti= 0;i< count; i++){fprintf(fp, "%d %s %d\n", farms[i].id, farms[i].name, farms[i].yield); fclose(fp); printf("成功:ID 为 %d 的记录已从系统中彻底移除。\n",deleteld); return 0;

#include <stdio.h> #include <string.h> #include <stdlib.h> typedef struct { int id; char name[50]; int yield; } OrangeFarm; int main() { OrangeFarm farms[100];int count = 0; int targetld, choice;FILE *fp; //1.加载数据到内存fp = fopen("farms.txt", "r"); if(fp == NULLprintf("错误:无法打开 farms.txt,请确保文件已存在。\n");return 1; while (fscanf(fp,"%d %s %d",&farms[count].id,. farms[count].name,&farms[count].yield)==3){ count++; fclose(fp); if (count == 0){ printf("数据库为空,请先添加数据。\n");return 0: //2.展示已有 ID,每行 3个并对齐 printf("---当前系统内的产地 |D 列表 ---\n"); for (inti= 0:i< count: i++){ printf("[%d]%-12s",farms[i].id,farms[i].name);// %-12s 保证名称左对齐if ((i + 1)% 3 == 0){printf("\n");// 每行输出3个后换行 printf("\n--------------. //3.用户选择要修改的 ID printf("请输入您想要修改的产地 ID:"); scanf("%d",&targetld); int index = -1: for (inti = 0;i< count; i++){ if (farms[i].id == targetld) { index = i: break; printf("未找到 |D 为 %d 的记录。\n",targetld);return 0; //4.选择修改项 printf("\n巳锁定产地: %s(产量: %d 吨)\n" farms[indexl.name, farms[index].yield); printf("1.修改产地名称\n"); printf("2.修改预计产量\n"); printf("3.取消修改\n"); pr榚撲宇爷蒹缓谧喪曈ヵ峰痠鸥夏昀官菖汚収忞弄请选择操作(1-3):"); scanf("%d",&choice); swit嬢佶h(choice){//使用 switch-case 处理多选项case 1: printf("请输入新的名称:"); scanf("%s",farms[index].name): break; case 2: printf("请输入新的产量(吨):"); scanf("%d",&farms[index].yield); break; case 3: printf("操作已取消。\n"); return 0; default: printf("非法输入,操作终止。\n"); return 0; // 5.写回文件 fp = fopen("farms.txt","w"); if (fp == NULL){ printf("回写文件失败!\n"); return 1; for (inti= 0;i< count; i++){fprintf(fp, "%d %s %d\n"farms[i].id, farms[il.name, farms[i].yield) fclose(fp); printf("ID 为 %d 的记录已成功更新。\n",targetld); return 0;

​ #include <stdio.h> #include <stdlib.h> typedef struct { int id; char name[50]; int yield; } OrangeFarm; int main(){ FILE *fp; OrangeFarm temp; int threshold: int foundCount = 0; //1.打开文件进行读取 fp = fopen("farms.txt","r"); if (fp == NULL) { printf("错误:无法打开数据文件 farms.txt,请确保文件已存在。\n");return 1: //2.获取用户查询条件 rintf("-----------廉江红橙产量筛选系统 -----------\n");printf("请输入产量阈值(吨):");if (scanf("%d",&threshold)!=1){printf("输入无效。\n");fclose(fp);// 记得关闭文件 return 1; printf("\n正在查询产量大于 %d 吨的产地...\n",threshold); orintf(--------------------驍胭郧-狝敝膻褓-------n: printf("%-10s %-20s %-10s\n","ID","产地名称","预计产量(吨)"); printf("----------\n”); //3.循环逐行解析数据 // fscanf 返回成功读取的项目数,若达到文件末尾则返回 EOFwhile (fscanf(fp,"%d %s %d", &temp.id, temp.name, &temp.yield)== 3){//4.执行逻辑判断与成员访问if (temp.yield > threshold){printf("%-10d %-20s %-10d\n", temp.id, temp.name, temp.yield);foundCount++; // 5.结果汇总 if (foundCount ==0){ printf("未找到产量超过 %d 吨的记录。\n",threshold);} else { printf(".--\n"); printf("查询完毕,共找到 %d 条记录。\n",foundCount); //6.必须执行的文件关闭操作fclose(fp); return 0; ​
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 22:05:33

卷积神经网络反向传播过程PyTorch自动求导机制解析

卷积神经网络反向传播过程PyTorch自动求导机制解析 在深度学习的实际开发中&#xff0c;一个常见的场景是&#xff1a;研究者刚刚设计好一个新的卷积神经网络结构&#xff0c;正准备进行训练&#xff0c;却卡在了反向传播的实现上——复杂的梯度推导、手动计算每一层的偏导数、…

作者头像 李华
网站建设 2026/8/24 10:47:45

Git分支策略:为PyTorch大型项目设计开发协作模式

Git分支策略&#xff1a;为PyTorch大型项目设计开发协作模式 在深度学习项目的实际研发中&#xff0c;团队常面临一个看似简单却影响深远的问题&#xff1a;为什么同一个模型代码&#xff0c;在研究员A的机器上训练稳定、收敛良好&#xff0c;换到服务器或另一位同事的环境中却…

作者头像 李华
网站建设 2026/8/31 8:24:11

WSL2图形界面支持运行PyTorch可视化训练进度条

WSL2图形界面支持运行PyTorch可视化训练进度条 在深度学习开发中&#xff0c;一个常见的困扰是&#xff1a;明明代码写好了&#xff0c;却只能靠打印日志“盲训”模型。尤其是在 Windows 环境下做研究或项目迭代时&#xff0c;想看看 tqdm 的进度条、画个 loss 曲线&#xff0…

作者头像 李华
网站建设 2026/9/2 18:40:13

利用PyTorch-CUDA镜像批量生成AI技术文章标题

利用PyTorch-CUDA镜像批量生成AI技术文章标题 在内容创作日益自动化、智能化的今天&#xff0c;如何高效地产出高质量的技术文章标题&#xff0c;已成为许多AI平台、自媒体团队甚至科研机构关注的核心问题。手动构思不仅耗时费力&#xff0c;还容易陷入风格不统一、关键词覆盖不…

作者头像 李华
网站建设 2026/9/2 20:39:08

Markdown语法高亮显示PyTorch代码块样式优化建议

PyTorch 代码在 Markdown 中的优雅呈现&#xff1a;从环境到文档的全链路优化 在深度学习项目开发中&#xff0c;我们常常面临一个看似微小却影响深远的问题&#xff1a;如何让别人一眼看懂你的 PyTorch 代码&#xff1f;不是指模型结构是否巧妙&#xff0c;而是——当你把一段…

作者头像 李华
网站建设 2026/9/2 19:53:52

Markdown引用参考文献标注PyTorch学术论文出处

如何在学术写作中规范引用 PyTorch 与容器化环境 在当今人工智能研究的浪潮中&#xff0c;一个看似微不足道却日益关键的问题浮出水面&#xff1a;我们该如何准确描述自己使用的“工具”&#xff1f;不是指算法或模型结构&#xff0c;而是底层框架和运行环境——比如那个几乎无…

作者头像 李华