阶乘字符统计和删除改写排序.docx
- 文档编号:9713277
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:9
- 大小:16.51KB
阶乘字符统计和删除改写排序.docx
《阶乘字符统计和删除改写排序.docx》由会员分享,可在线阅读,更多相关《阶乘字符统计和删除改写排序.docx(9页珍藏版)》请在冰豆网上搜索。
阶乘字符统计和删除改写排序
给定程序中函数fun的功能是:
求出形参ss所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。
字符串数组中共有M个字符串,且串长 #include #include #defineM5 #defineN20 voidfun(char(*ss)[N]) {inti,j,k=0,n,m,len; for(i=0;i {len=strlen(ss[i]); if(i==0)n=len; if(len>n){ /**********found**********/ n=len;___1k___=i; } } for(i=0;i if(i! =k)//如果本身不是最大长度 {m=n; len=strlen(ss[i]); /**********found**********/ for(j=___2len___;j>=0;j--) ss[i][m--]=ss[i][j];//字符串右对齐 for(j=0;j /**********found**********/ ___3ss[i][j]___='*'; } } main() {charss[M][N]={"shanghai","guangzhou","beijing","tianjing","cchongqing"}; inti; printf("\nTheoriginalstringsare: \n"); for(i=0;i printf("\n"); fun(ss); printf("\nTheresult: \n"); for(i=0;i } 给定程序MODI1.C中函数fun的功能是: 计算整数n的阶乘。 请改正程序中的错误或在下划线处填上适当的内容并把下划线删除,使它能计算出正确的结果。 #include doublefun(intn) { doubleresult=1.0; while(n>1&&n<170) /*********found*********/ result*=--n;改为result*=(double)n--; /*********found*********/ return_____;改为returnresult; } main() { intn; printf("Enteraninteger: "); scanf("%d",&n); printf("\n\n%d! =%lg\n\n",n,fun(n)); } 编写函数fun的功能是: 从s所指的字符串中删除给定的字符。 同一字母的大、小写按不同字符处理。 若程序执行时输入字符串为: turbocandBorlandc++从键盘上输入字符: n,则输出后变为: turbocadborladc++如果输出的字符在字符串中不存在,则字符串照原样输出。 #include #include voidfun(chars[],charc) {char*p=s; inti=0; while(*p){ if(*p! =c)s[i++]=*p;//只处理符合条件的情况 p++; } s[i]=0//因为是字符串,最后一位赋结束符 } main() { voidNONO(); staticcharstr[]="turbocandborlandc++"; charch; printf("原始字符串: %s\n",str); printf("输入一个字符: "); scanf("%c",&ch); fun(str,ch); printf("str[]=%s\n",str); NONO(); } voidNONO() { /*请在此函数内打开文件,输入测试数据,调用fun函数, 输出数据,关闭文件。 */ FILE*rf,*wf; chars[81],ch,w; intlen; rf=fopen("C: \\WEXAM\\24990001\\in.dat","r"); wf=fopen("C: \\WEXAM\\24990001\\out.dat","w"); fgets(s,80,rf); fscanf(rf,"%c",&ch); len=strlen(s)-1; w=s[len]; if(w=='\n'||w==0x1a)s[len]=0; fun(s,ch); fprintf(wf,"%s",s); fclose(rf); fclose(wf); } 给定程序MODI1.C中函数fun的功能是: 将p所指字符串中每个单词的最后一个字母改成大写。 (这里的“单词”是指由空格隔开的字符串)。 例如,若输入”Iamastudenttotaketheexamination.”, 则应输出”IaMAstudenTtOtakEthEexamination.”。 #include #include #include voidfun(char*p) { intk=0; for(;*p;p++) if(k) { /**********found***********/ if(*p=='') { k=0; /**********found***********/ *(p-1)=toupper(*(p-1));//回退一位变为大写 } } else k=1; } main() { charchrstr[64]; intd; printf("\nPleaseenteranEnglishsentencewithin63letters: "); gets(chrstr); d=strlen(chrstr); chrstr[d]=''; chrstr[d+1]=0; printf("\n\nBeforechanging: \n%s",chrstr); fun(chrstr); printf("\nAfterchanging: \n%s",chrstr); } 请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列。 例如,原来的字符串为CEAedca,排序后输出为CedcEAa。 #include #include #include voidfun(char*s,intnum) {charch; inti,j; for(i=1;i<6;i++) for(j=i+1;j<6;j++){ if(*(s+i)<*(s+j)){ ch=*(s+j); *(s+j)=*(s+i); *(s+i)=ch; } } } main() { voidNONO(); chars[10]; printf("输入7个字符的字符串: "); gets(s); fun(s,7); printf("\n%s",s); NONO(); } voidNONO() { /*请在此函数内打开文件,输入测试数据,调用fun函数, 输出数据,关闭文件。 */ chars[10]; FILE*rf,*wf; inti=0; rf=fopen("C: \\WEXAM\\24990001\\in.dat","r"); wf=fopen("C: \\WEXAM\\24990001\\out.dat","w"); while(i<10){ fgets(s,10,rf); s[7]=0; fun(s,7); fprintf(wf,"%s\n",s); i++; } fclose(rf); fclose(wf); } 请编写一个函数voidfun(char*tt,intpp[]),统计在tt所指字符串中’a’到’z’26个小写字母各自出现的次数,并依次放在pp所指数组中。 例如,当输入字符串: abcdefgabcdeabc后,程序的输出结果应该是: 33322110000000000000000000 #include #include voidfun(char*tt,intpp[]) { char*p=tt; inti; for(i=0;i<26;i++)pp[i]=0; while(*p){ if(*p>='a'&&*p<='z')pp[*p-'a']+=1; p++; } } main() {charaa[1000]; intbb[26],k; voidNONO(); printf("\nPleaseenteracharstring: ");scanf("%s",aa); fun(aa,bb); for(k=0;k<26;k++)printf("%d",bb[k]); printf("\n"); NONO(); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 阶乘 字符 统计 删除 改写 排序