上机练习第28天

第一题

个人总结:接收数据后,若要转换成N进制,表明小于N正常表示,大于N进1,则需要循环算出m/N之后的余数,直至最后为m/N=0退出循环,而在表示余数时,当前余数>=10则需要用字母表示,则A=10,余数=10为A,余数=11为B,则减去10+'A'即为正确表示。最后用数组保存每次余数的值,按逆序输出即可。

代码如下:

复制代码
#include <stdio.h>
char exchange(int n){
	if(n>=0&&n<=9) return n+'0';
	else return n-10+'A';
}
int main(){
	int m,N;
	while(scanf("%d %d",&m,&N)!=EOF){
		if(m==0){
			printf("0\n");
			continue;
		}
		char temp[32];
		int num=0;
		int result;
		while(m>0){
			result=m%N;
			temp[num++]=exchange(result);
			m/=N;
		}
		for(int i=num-1;i>=0;i--)printf("%c",temp[i]);
		printf("\n");
	}
	return 0;
}

第二题

个人总结:设置一个char数组接收一行数据,用strlen()算出数组的长度,依次遍历数组每个数据。设置int类型变量result保存当前总数,sign为当前符号(1为加,-1为减),num用于接收多位数据。当前为空格直接跳一个数据,当前为"+"sign置1,"-"置-1,其余再判断while当前i<len且isdigit(数据)(isdigit()用于判断当前char类型数据是否为"0"-"9"是返回1,不是返回0),num=num*10+arri-'0',能用num表示多位数,i++(此为第二次while内),其余i++在其他条件下设置。最后输出result即可。

代码如下:

复制代码
#include <stdio.h>
#include<string.h>
#include<ctype.h>
int main(){
	char arr[1000];
	while(gets(arr)!=NULL){
			if(strlen(arr)==0) continue;
			int result=0;
			int num=0;
			int sign=1;
			int i=0;
			int len=strlen(arr);
			while(i<len){
				if(arr[i]==' ') {
					i++;
					continue;
				}
				else if(arr[i]=='+') {
					i++;
					sign=1;
				}
				else if(arr[i]=='-'){
					i++;
					sign=-1;
				}
				else{
					num=0;
					while(i<len&&isdigit(arr[i])){
						num=num*10+(arr[i]-'0');
						i++;
					}
					result+=sign*num;
				} 
			}
			printf("%d\n",result);
	}
	return 0;
}

第三题

个人总结:数组接收数据,设置两个int变量指向当前遍历的下标(i)和所覆盖的下标(sum),当前下标所指数据为删除数据时,遍历下标++,其余条件两个下标同时++,最后遍历结束设置sum下标数据为'\0'(终止符)。%s输出数组即可。

代码如下:

复制代码
#include <stdio.h>
#include<string.h>
int main(){
	char arr[1000];
	while(gets(arr)!=NULL){
		char del;
		scanf("%c",&del);
		getchar();	
		int len=strlen(arr);
		if(len==0) continue;
		int sum=0;
		int i=0;
		while(i<len){
			if(arr[i]==del) {
				i++;
			}
			else {
				arr[sum]=arr[i];
				i++;
				sum++;
			}	
		}
		arr[sum]='\0';
		printf("%s\n",arr);
	}
	return 0;
}

翻译

共享仓库的优缺点如下:

对于共享大型数据是个高效的办法。无需显示传输数据从一个子系统到另一子小系统。

然而子系统必须允许授权给共享数据模型。每个所需明确的工具需要妥协是不可避免的。在这种妥协下的性能可能会产生事与愿违的结果。如果子系统的数据模型不适应此模式。那么集成的新型子系统可能会变得困难或不可能。

生产数据的子系统无需考虑其他子系统如何使用此数据。

然而,进化可能很困难,根据商定的数据模式下产生一大栏信息。翻译此数据至新模型成本必然高昂;这可能很困甚至不可能。

类似备份,安全,访问控制以及从错误中恢复此类活动是集中式的。仓库管理员有此类职责。工具可以集中于他们主要供能而不用担忧此类问题。

然而,在安全,恢复,以及备份政策上,不同子系统可能拥有不同的规定。仓库模型会将相同的策略强加于所有子系统上。

共享模型通过仓库模式可见。只要新工具和商定模式下的数据兼容,集成他们是轻而易举的。

然而,在多台机器上分布仓库可能会很困难。尽管可以在逻辑上构建一个集中式仓库是可能的,但可能会存在数据冗余与数据不一致的问题。

在上述模型中,仓库模型是被动型的,被控制权由所使用仓库的子系统负责。可代替的方法就是源自使用"黑板"模型的人工智能系统,当特定数据可用时,会触发子系统。当仓库数据形式结构化较低时,这种方法是适合的。关于激活哪个工具的决定,只有在数据被分析后才能做出。

单词打卡

相关推荐
Navigator_Z20 小时前
LeetCode //C - 1309. Decrypt String from Alphabet to Integer Mapping
c语言·算法·leetcode
潇湘秦20 小时前
SQL Server 2016+ 整数类型元数据扩宽(秒级变更)完整说明
数据库·算法
Figo_Cheung21 小时前
Figo基于结构空间算法假设(SSAH)的生成式大模型优化范式与工程实现边界研究——提出适应AGI架构演化的自适应拓扑感知表征机制
算法·架构·agi
旖旎夜光21 小时前
LCR 170:交易逆序对的总数(归并排序) —— 题解
c++·学习·算法·leetcode·排序算法
微尘hjx1 天前
【ByteTrack 04】多轨迹算法ByteTrack改进点
算法·yolo·目标检测·目标跟踪·bytetrack·ultralytics·车跟踪
小蒋观天下1 天前
雷击与浪涌防护:前端SPD选型、接地网误区,接地不当反而引入干扰
深度学习·算法·机器学习
WBluuue1 天前
数据结构与算法:分块(一):块状数组、块状链表
数据结构·c++·算法·链表
澳鹏Appen2 天前
澳鹏重磅发布ExamOCRBench:面向端到端试卷判分的多任务基准
算法·benchmark·基准评测
benjormin2 天前
Java数据结构 二叉搜索树
数据结构·算法