1.字符串在文档处理、基因序列等方面应用广泛。下列给定程序中,函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。程序有二个错误,写出错行号、原因、和正确代码。
1 #include <stdio.h>
2 void fun(char *s)
3 {
4 int i, j;
5 for (i=0, j=0; s[i]!='\0'; i++)
6 if (s[i]>='0' && s[i]<='9')
7 s[j] = s[i];
8 s[j] = "\0";
9 }
10 int main()
11 {
12 char item[80];
13 printf("\nEnter a string :");
14 gets(item);
15 printf("\n\nThe string is : %s\n", item);
16 fun(item);
17 printf("\n\nThe string of changing is : %s\n", item);
18 return 0;
19 }
2.排序算法在很多领域得到相当的重视,尤其是在大量数据的处理方面。下列给定程序是使用指针完成冒泡法排序的程序,其中有二个错误,找出其中的错误行和出错原因,写出正确代码。
1 #include <stdio.h>
2 int main()
3 { int a[10]={21,43,55,12,65,87,25,93,30,62};
4 int i,k,pa;
5 for (k=0;k<10;k++)
6 printf("%3d",a[k]);
7 printf("\n\n");
8 for (k=0;k<9;k++)
9 { pa=a;
10 for (i=0;i<10-k-1;i++)
11 { if ( *pa>(pa+1) )
12 { temp=*pa; pa=(pa+1); *(pa+1)=temp;
13 }
14 pa++;
15 }
16 }
17 for (k=0;k<10;k++)
18 printf("%3d",*pa++);
19 printf("\n\n");
20 return 0;
21 }
c程序设计错误代码判断
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- qfl_sdu 2021-07-12 08:52关注
题目1:
void fun(char *s) { int i, j; for (i=0, j=0; s[i]!='\0'; i++) if (s[i]>='0' && s[i]<='9')//错误1,修改为 !(s[i]>='0' && s[i]<='9')原来的条件是判断字符是数字字符,加上取反后才是去掉数字字符 s[j] = s[i]; //错误2:修改为s[j++]=s[i],赋值后,下标需要后移一位 s[j] = "\0"; }
题目2:
#include <stdio.h> int main() { int a[10]={21,43,55,12,65,87,25,93,30,62}; int i,k,*pa; int temp; //在这里添加temp的声明(错误1的修改方法) for (k=0;k<10;k++) printf("%3d",a[k]); printf("\n\n"); for (k=0;k<9;k++) { pa=a; for (i=0;i<10-k-1;i++) { if ( *pa>*(pa+1) ) { temp=*pa; *pa=*(pa+1); *(pa+1)=temp;//错误1,没有对temp的声明,需要在开头添加int temp; } pa++; } } pa = a; //错误2:需要把pa重新指向数组的首地址,需要添加这一句 for (k=0;k<10;k++) printf("%3d",*pa++); printf("\n\n"); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 保护模式-系统加载-段寄存器
- ¥15 电脑桌面设定一个区域禁止鼠标操作