( 含注释)实验7-3-7 字符转换 (15分)

在这里插入图片描述

#include<stdio.h>
#include<ctype.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
int main()
{	
	char arr[81];
    gets(arr);
    int len = strlen(arr), i, temp, flag = 1;
    for ( i = 0; i < len; i++)
        if ( arr[i] > '0' && arr[i] <= '9'){	//找第一个不为0的数
            printf("%c", arr[i]);
            flag = 0;						//找到就做标记。
            temp = i;
            break;
        }
    for ( i = temp + 1; i < len; i++)
        if ( arr[i] >= '0' && arr[i] <= '9')
            printf("%c", arr[i]);
    if (flag)		//没找到则输出0
        printf("0");
	
	return 0;
} 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 课程设计目标 实验建立C-编译器。只有扫描程序(scanner)和语法析(parser)部。 2. 析与设计 C-编译器设计的整体框架,本实验实现扫描处理和语法析程序(图中粗黑部)。 2.1 、扫描程序scanner部 2.1.1系统设计思想 设计思想:根据DFA图用switch-case结构实现状态转换。 惯用词法: ① 语言的关键字:else if int return void while ② 专用符号:+ - * / < >= == != = ; , ( ) [ ] { } /* */ ③ 其他标记是ID和NUM,通过下列正则表达式定义: ID = letter letter* NUM = digit digit* letter = a|..|z|A|..|Z digit = 0|..|9 大写和小写字母是有区别的 ④ 空格由空白、换行符和制表符组成。空格通常被忽略,除了它必须开ID、NUM关键字。 ⑤ 注释用通常的C语言符号/ * . . . * /围起来。注释可以放在任何空白出现的位置(即注释不能放在标记内)上,且可以超过一行。注释不能嵌套 说明:当输入字符使DFA到达接受状态的时候,则可以确定一个单词了。初始状态设置为START,当需要得到下一个token时,取得次token的第一个字符,并且按照DFA与对此字符的类型析,转换状态。重复此步骤,直到DONE为止,输出token类型。当字符为“/”时,状态转换为SLAH再判断下一个字符,如果为“*”则继续转到INCOMMENT,最后以“*”时转到ENDCOMMENT状态,表明是注释,如果其他的则是字符停滞于当前字符,并且输出“/”。 2.1.2程序流程图
实验 2 实验报告 教学班级: 学生学号: 学生姓名: 实验日期: 实验机房: 助教老师: 一、实验目的 1. 掌握顺序结构的编程思路和方法; 2. 掌握格式输入输出和数据类型转换。 二、实验任务 给朋友打印生日卡,生日卡格式如下: ==================================== My dear Zhang, Happy birthday to you! yours, Li ==================================== 要求你的名字(必须是真实姓名)和你朋友的名字均由键盘输入,在输入名字时请给出提示信息。 已知赵六同学学号20110101111,他期末参加了高等数学、普通物理、大学英语三门课程期末考试。编程实现:键盘输入学生的学号、以及各科的成绩,计算平均成绩。输入输出格式参见下图。 要求: 学号作为一个整数而言,超出了int所定义的变量的存储范围,因此只能用double型变量来存储,但输出时要求看见的是整数形式的学号。 输出对齐,成绩保留2位小数。 实验2-实验报告全文共2页,当前为第1页。键盘输入一个小写字母,将其转换成大写字母,并输出它们的ASCII码值及其原字符实验2-实验报告全文共2页,当前为第1页。 计算万有引力。 由普通物理知, 两个质量别为m1和m2的物体之间的万有引力F与两个物体质量的乘积成正比, 与两个物体质心之间的距离R的平方成反比: F=Gm1m2/R2 式中G为引力常数,如果F的单位为牛顿(N),质量的单位为千克(kg),物体质心的距离单位为米(m),则G 6.67259×10-11N m2/kg2,已知太阳的质量为1.987×1030千克,地球的质量为5.975×1024kg,太阳与地球的距离为1.495×1011m,请计算太阳与地球之间的万有引力。 加法器 键盘输入两个数,计算这两个数的和,并输出结果。 三、实验结果(源程序 + 注释实验2-实验报告全文共2页,当前为第2页。 实验2-实验报告全文共2页,当前为第2页。 实验2-实验报告
在MapReduce中进行数据清理可以为多个阶段,第一阶段通常是数据清洗。下面简要介绍一下Java MapReduce实验中的数据清洗阶段。 数据清洗阶段的目的是将原始数据进行预处理,使得后续的计算能够更加准确和高效。具体而言,数据清洗阶段需要完成以下任务: 1. 去除无用数据:在数据中可能存在一些与计算无关的内容,比如注释、空行等,需要将这些内容去除。 2. 格式化数据:对于有些数据,可能存在格式上的不规范,需要将其进行规范化,比如日期格式、数字格式等。 3. 数据过滤:有些数据不符合计算要求,需要将其过滤掉。 4. 数据转换:有些数据需要进行转换,比如将字符串转为数字、将时间戳转为日期等。 下面是一个简单的Java MapReduce程序,用于进行数据清洗。该程序的输入为一个文本文件,包多条记录,每条记录由多个字段组成,字段之间用逗号隔。程序的输出为清洗后的数据集,每条记录仅包需要的字段,并且字段之间用逗号隔。 ```java public class DataCleanMapper extends Mapper<LongWritable, Text, NullWritable, Text> { private Text outputValue = new Text(); private StringBuilder builder = new StringBuilder(); @Override protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException { String[] fields = value.toString().split(","); if (fields.length >= 5) { // 只保留前5个字段,其余字段丢弃 for (int i = 0; i < 5; i++) { builder.append(fields[i]).append(","); } builder.deleteCharAt(builder.length() - 1); outputValue.set(builder.toString()); context.write(NullWritable.get(), outputValue); builder.setLength(0); } } } ``` 该程序的主要逻辑如下: 1. 将输入的文本文件按行读取,每行数据作为一个键值对的value。 2. 根据逗号将每行数据割成多个字段。 3. 判断字段个数是否大于等于5,如果是,则只保留前5个字段,其余字段丢弃。 4. 将清洗后的数据作为一个键值对的value,写入输出文件中。键使用NullWritable.get()表示不需要指定键,输出的value为Text类型,值为清洗后的数据。 该程序的输出结果为清洗后的数据集,每条记录仅包需要的字段,并且字段之间用逗号隔。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值