2 qq 27416233 qq_27416233 于 2016.04.06 12:17 提问

求大神帮解决一下C语言的问题,找不到错误了.编译器通过了.但是提交错误

#include
#include
int main()
{
char str[][4]={"\0"};
char string[30],temp;
int i=0,j,n,k,m,p=0;
int l=0;
scanf("%d",&n);
p=n-1;
for(k=0;k {
scanf("%s",&str[k]);
l=strlen(str[k]);
for(m=0;m for(i=0;i for(j=i;j {
if(str[m][i]>str[m][j])
{
temp=str[m][i];
str[m][i]=str[m][j];
str[m][j]=temp;
}
}
}
for(i=0;i {
for(j=0;j {
printf("%c ",str[i][j]);
}
printf("%c",str[i][l-1]);
if(p>i)
{
printf("\n");//这个换行的问题解决了.之后是最后的空间问题
}
}
return 0;
}

5个回答

qq_27416233
qq_27416233   2016.04.06 12:19

图片说明

qq423399099
qq423399099   Ds   Rxr 2016.04.06 12:37

for循环全部乱了,楼主截个图,或者把代码放在代码标识里

qq_27416233
qq_27416233 大神 你再看下.
一年多之前 回复
qq_27416233
qq_27416233   2016.04.06 12:58

图片说明你再看下

sunnylinner
sunnylinner   2016.04.06 13:16
sunnylinner
sunnylinner 回复qq_27416233: 我是不是太晚了0.0
一年多之前 回复
qq_27416233
qq_27416233 http://paste.ubuntu.net/15642011/里 谢谢
一年多之前 回复
qq423399099
qq423399099   Ds   Rxr 2016.04.06 13:43

没改代码前我运行楼主的代码,报错:
stack around the variable 'str' was corrupted
明显是数组越界操作了

感觉有两个问题:
1.申请内存方式不对,应该动态申请
2.里面多了一层循环

#include <stdio.h>
#include<string.h>
void main()
{
    //char str[][4]={"\0"};应该动态申请内存,这样相当于就是char str[1][4] = {"\0"}
    char string[30],temp;
    int i=0,j,n,k,m,p=0;
    int l=0;
    scanf("%d",&n);
    char **str;
    str = (char **)malloc(n*sizeof(char *));
    p=n-1;
    for(k=0;k<n;k++) 
    {
        str[k] = (char *)malloc(4 * sizeof(char));
        scanf("%s",str[k]);
        l=strlen(str[k]);
        //for(m=0;m<n;m++)这个地方逻辑有问题,是一句句输入的
        for(i=0;i<l-1;i++)
            for(j=i;j<l;j++)
            {
                if(str[k][i]>str[k][j])
                {
                    temp=str[k][i];
                    str[k][i]=str[k][j];
                    str[k][j]=temp;
                }
            }
    }
    for(i=0;i<n;i++)
    {
        for(j=0;j<l-1;j++)
        { 
            printf("%c ",str[i][j]);
        }
        printf("%c",str[i][l-1]);
        if(p>=i)
        {
            printf("\n");//这个换行的问题解决了.之后是最后的空间问题
        }
    }
}

注:如果还是不能AC,楼主就改成输入一句输出一句试试

qq_27416233
qq_27416233 谢谢 提交了.我得仔细看看
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!