调试中引发异常不知如何修改(新手上路,望不吝赐教)

作者在 2018-12-29 16:05:37 发布以下内容
/*问题描述 给出两个字符串s1和s2。 s1由若干连续小写字母组成,且每个小写字母只出现一次,例如”albwx”。 s2由若干个由单个空格分隔的字母构成,例如”a b c d a l”。 写一个程序找出字符串s2中属于字符串s1的字符,并按字母升序输出。 如果一个字母出现多次,只输出一次。如果s2中的字符都不属于s1则输出“No”。 输入说明 输入的第一行是字符串s1, 它至少包含一个字符, 且长度不超过 26。 第二行是字符串s2,字符串里只包含小写字母和空格,且长度不超过 256。 输出说明 按照字母升序输出字符串s2中属于字符串s1的字符,如果一个字符出现多次,只输出一次。 如果s2中的字符都不属于s1则输出“No”。 输入样例 albwx a l b c d a 输出样例 a b l*/ #include #include int main() { char s1[26], s2[256], s3[26];//定义与初始化 int x, y, m, n, temp; int z = 0; gets(s1); gets(s2); x = strlen(s1); y = strlen(s2); for (m = 0; m < 26; m++)//比较并找出s2中与s1中相同的字母 { for (n = 0; n < 256; n++) { if (s2[n] == s1[m]) { s3[z] = s1[m];//保证字符串3中的元素是没有重复的 z++; } } } if (z == 0) printf("No"); else { for (int i = 0; i < strlen(s3); i++)//冒泡排序 { for (int j = 0; j < strlen(s3) - 1 - i; j++) { if (s3[j] > s3[j + 1]) { temp = s3[j]; s3[j] = s3[j + 1]; s3[j + 1] = temp; } } } } for (m = 0; m < z; m++) { printf("%c ", s3[m]); } return 0; }
调试.png (上传于2018-12-29 16:05:37)
调试.png
作者在 2018-12-29 16:06:46 补充以下内容
https://paste.ubuntu.com/p/YzstzNySfs/   源代码链接
编程 | 阅读 826 次
文章评论,共0条
游客请输入验证码
浏览826次
文章分类
文章归档
最新评论