程序的基本思路是把输入的字符串放到a[100]字符组中,然后把a[100]中所有不重复的字符添加到b[100]中,间接完成对字符串中的重复字符的删除
#include<stdioh>
void
main()
{
char
a[100],b[100];
//定义两个字符组,a[100]用来接收输入的字符串,b[100]用来存储不重复的字符
int
pa=0,pb=0,i,flag;
scanf("%s",a);
//输入字符串到a[100]中,用scanf读入到a[100]中会自动在a[100]中字符串结束的地方加上'\0'
for(pa=0;a[pa]!='\0';pa++)
//for循环结束的条件是a[pa]==0,也就是从a[100]字符组中读取一个字符,直到没有
{
flag=1;
//flag是个标志符,当flag==1时,说明这个字符(下句中的a[pa])是第一次出现,应该加入到b[100]中
//如果flag==0,说明这个字符(下句中的a[pa])重复了,不应该加到b[100]中
for(i=0;i<pb;i++)
if(b[i]==a[pa])
flag=0;
//把a[100]中读取的字符a[pa]与b[100]中的所有字符进行比较,如果b[i]==a[pa]
//说明这个字符已经在b[100]中了,也就是重复字符了,所有将flag=0,不能加入b[100]中
//如果a[pa]与b[100]中的所有字符都不相等,说明这个字条是第一次出现,应该加到b[100]
if(flag)
{
b[pb]=a[pa];pb++;
}
//如果flag==1,则将a[pa]这个字符加入到b[100]中,然后将pb加1
}
b[pb]='\0';
//当所有的不重复的字符都加入到b[100]中时,将b[100]中字符结束的地方加'\0',也就是b[pb]='\0'
//因为字符串都是民'\0'结尾的,所以加上这句
printf("%s\n",b);
//输出b[100]中的字符串,也就是删除过重复字符之后的了
}
intp型人格的人适合的职业有很多啊,比如说教师、护理、公务员、医生、心理学工作者、艺术工作者、服务行业等, intp型人格的人比较喜欢和人交流,喜欢帮助人,这样的人比较适合做一些服务行业的工作,比如护士,老师,医生,公务员等。
intp-t型人格适合什么样的职业
intp-t型人格适合的职业是:
1、艺术工作者:艺术家、作家、音乐家、演员、导演等。
2、设计工作者:室内设计师、服装设计师、平面设计师、建筑设计师、广告设计师等。
3、科学研究者:科学家、工程师、研究人员、实验室技术人员等。
4、医生:医生、护士、医疗器械技术人员、牙科技师等。
5、教师:教师、心理咨询师、教育工作者、社会工作者等。
端
ma——a的最大容量,必须大于na
n=12——求n的阶
p——求阶乘时的当前乘数
/
#include<stdioh>
#define Ma 10000
int pa;/指向数组a的有效末端/
int p=2;
int memory_over=0;
union data
{ unsigned long int b;
struct
{unsigned l:16;
unsigned h:16;
}m;
}a[Ma];
/+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
算法说明1:考虑到result比较长,我用a[Ma]b来存储n!的result,每一位a[pa]b能存储4位10进制数字。
因为我定义的数组是静态的,所以Ma应该足够大。
ps:其实只用定义一个unsigned long int b[Ma];就可以了(直接用b[pa]代替a[pa]b),但是我考虑到可能会访问每一结点b[pa]的高16位(a[pa]mh)和低16位(a[pa]ml),但是的我考虑是多余的!!不用像我这样定义这么复杂的共用体!!
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++/
unsigned int cashe;
unsigned int carry;
void main()
{
unsigned int n;/求n的阶/
void facto(unsigned int n);
printf("Input n:");
scanf("%u",&n);
/=================开始求阶乘!=============/
a[0]b=1;/初始化/
facto(n);
/+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
算法说明2:上面这句直接调用facto(n)来求n!
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++/
/========================以下是显示最后结果====================================/
if(memory_over==0)
{printf("the result include %dNO:\n",pa+1);
printf("%u",a[pa--]ml);
for(;pa>=0;pa--)
printf("%04u",a[pa]ml);
printf("\n");
}
getch();
}
/+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
算法说明2:求阶函数facto(n)说明:
这个函数会不断地调用multiple(),它的作用是每被调用一次就使得a[pa]b与阶数p相乘一次,直到乘完n为止!
{multiple();
p++;/每一轮乘一个阶数p/
}
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++/
void facto(unsigned int n)
{void multiple();
pa=0;
while(pa<Ma-1&&p<=n)/容量限制/
{multiple();
p++;/每一轮乘一个阶数p/
}
if(p<=n)
/如果当前的存储结果的数组a[Ma]不够用!应提高Ma/
}
/==============================================================================
算法说明3:乘法函数multiple()说明:负责a[pa]b与阶数p相乘。
a[pa]b有很多结点,a[0]b、a[1]b、a[2]b、a[3]b、a[4]b、。。。
当然是从低结点a[0]b开始不断与p相乘,产生的“进位”加到高位a[1]b,直到a[pa]bp为止!
随着结果数值增大,pa个结点的a[]b可能容纳不下结果,所以如果a[pa]b与p相乘后还有“进位”carry,就扩大pa,并把carry放入到新增加的结点:
if(carry>0)
a[++pa]b=carry;
===================================================================================/
void multiple()
{int i=0;
carry=0;
while(i<=pa)/i指向当前处理的元素a[i],每一轮用一个位与阶数p相乘/
{a[i]b=a[i]bp+carry;/计算结果,要考虑来自低位的进位/
carry=a[i]b/10000;/计算进位/
a[i]b=a[i]b%10000;/计算余数/
i++;
}
if(carry>0)
a[++pa]b=carry;
}
intj和intp的聪明没法比的,两者很多时候只是分工的不同,同等级的intj和intp是很好的搭档。但事实上,intj最终还是太孤单了,intp最终还是跟一群intp一起研究,因为intj很难遇到那个同等级的intp,intp也很难遇到那个同等级的intj。
1、intp的聪明在于从原初的理论原点出发,去寻找这个理论原点相近或相似的下一个理论原点,并且逐渐形成自己比较单一的体系。
而intj的聪明在于将已经存在的理论原点进行有规矩的整理,形成一个精密无比宏大精深的体系。
所以,对于intp的困难之处为:如果两个理论原点相隔太远,intp很难发现这两者之间的深刻联系。这一点恰恰是intj最为擅长,结果是intp有时候很难跟上intj的思维。
对于intj的困难之处为,intj可能很难去真正发现或创造一个理论,正如黑格尔引用圣经所说:太阳底下没有新鲜事物。久而久之,intj容易迷离。
所以,intp的特点是思维精准的、富有逻辑的、更加理论化的、更加理性的,因为intp研究是A点与B点关系,再是B点与C点关系。估计这样精准理性,很能得到别人的理解。
intj的特点是思维不精准的、没有逻辑的、没有理论化的,甚至没有理性的,因为intj研究的是A点P点关系,再是P点与H点的关系。intj百分百虐死你。
2、intj更加自信,或者极度谦虚。东方朔在山沟沟里经常喊“俺东方朔天下第一”的节奏。要么是诸葛亮在乡下的时候,经常老子多,每次都自比管仲乐毅。
intp保持常态。头脑里想着某个理论应该怎么样,没intj这么自恋。
3、intj更加独立。经常是自干自的,很有个人主见,都要自己拿主意才可以。不论谁的意见都不足以作为intj行动的来源,顶多只是intj作为参考性的建议。
而intp,有时候遇到intp,你根本认不出他会是intp。如果是浅交,intp没有特别深刻的特点。
4、intj是真正的奇才,故而很多时候无法被众人所理解。
intp最合适去教大学生,带博士生,当然是国外。
5、intj要么足智多谋、要么圣贤下凡。精通儒学、心学,渴望天下归心,决胜千里,又带得一手好兵。
intp,数学家(尤其是女数学家),精通数理学等。
6、intp们只是用不同的方式解释世界,而问题在于改变世界。 ——intj如是说
entp-a和INTP相处还蛮和谐。
因为这两种人格都是社交随和派,不会给彼此太多“亲近”捆绑,聊起天来也不用动用fe假惺惺附和彼此。entp-a开启话唠模式,intp会耐心分析找出观点漏洞。intp怀疑人生时企图找entp-a抒发郁闷,entp-a听完intp的吐槽,嘿嘿一笑,觉得intp的吐槽有理有据,干脆一起怀疑人生。这两种人格就算互相口头diss也不会去否认彼此,不会产生太大矛盾。
欢迎分享,转载请注明来源:表白网
评论列表(0条)