第一题

个人总结:接收数据后,若要转换成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+arr[i]-'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;
}
翻译
共享仓库的优缺点如下:
对于共享大型数据是个高效的办法。无需显示传输数据从一个子系统到另一子小系统。
然而子系统必须允许授权给共享数据模型。每个所需明确的工具需要妥协是不可避免的。在这种妥协下的性能可能会产生事与愿违的结果。如果子系统的数据模型不适应此模式。那么集成的新型子系统可能会变得困难或不可能。
生产数据的子系统无需考虑其他子系统如何使用此数据。
然而,进化可能很困难,根据商定的数据模式下产生一大栏信息。翻译此数据至新模型成本必然高昂;这可能很困甚至不可能。
类似备份,安全,访问控制以及从错误中恢复此类活动是集中式的。仓库管理员有此类职责。工具可以集中于他们主要供能而不用担忧此类问题。
然而,在安全,恢复,以及备份政策上,不同子系统可能拥有不同的规定。仓库模型会将相同的策略强加于所有子系统上。
共享模型通过仓库模式可见。只要新工具和商定模式下的数据兼容,集成他们是轻而易举的。
然而,在多台机器上分布仓库可能会很困难。尽管可以在逻辑上构建一个集中式仓库是可能的,但可能会存在数据冗余与数据不一致的问题。
在上述模型中,仓库模型是被动型的,被控制权由所使用仓库的子系统负责。可代替的方法就是源自使用"黑板"模型的人工智能系统,当特定数据可用时,会触发子系统。当仓库数据形式结构化较低时,这种方法是适合的。关于激活哪个工具的决定,只有在数据被分析后才能做出。
单词打卡
