|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
代码中第二个for循环是我打算用来求最长和最短的句子用的,因为执行报错我删除了求最小的那一部分代码,不过代码还是执行不下去。 我在第二个for循环中加了打印数组a值,从执行结果来看似乎是在第5次循环的时候那个判断出了问题orz。
后来我删除了其中的if语句,发现这个for不会报Segmentation fault--
说了那么多,我想问一下这个循环里加的 if 报错的原因是什么?
我跑了下没什么问题啊,你试下吧 - #include <stdio.h>
- int main() {
- char str[5][128] = {0};
- int i, j = 0, max = 0, min = 128, a[5] = {0};
- for (i = 0; i < 5; i++) {
- printf("请输入%d句话:", i + 1);
- while ((str[i][j++] = getchar()) != '\n') {
- }
- a[i] = j - 1;//记录第i句话的字符数
- j = 0;
- }
- for (i = 0; i < 5; i++) { //求最长的一句话
- printf("%d\n", a[i]); //排查错误时候为了打印数组a用的
- if (a[i] >= max) {
- max = a[i];
- }
- }
- printf("max=%d\n", max);
- /*printf("你输入了下边5句话:\n");
- for (i = 0; i < 5; i++) {
- for (j = 0; j < max; j++) {
- printf("%c", str[i][j]);
- }
- printf("\n");
- }
- printf("其中最短的是:");
- printf("其中最长的是:");*/
- }
复制代码
|
-
这是代码部分
-
这是执行情况,在第二个for循环结束的时候报错
|