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 大神 你再看下.
2 年多之前 回复
qq_27416233
qq_27416233   2016.04.06 12:58

图片说明你再看下

sunnylinner
sunnylinner   2016.04.06 13:16
sunnylinner
sunnylinner 回复qq_27416233: 我是不是太晚了0.0
2 年多之前 回复
qq_27416233
qq_27416233 http://paste.ubuntu.net/15642011/里 谢谢
2 年多之前 回复
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 谢谢 提交了.我得仔细看看
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
xcode上提示很多错误,但能编译。 解决办法
有少数开发者会遇到一个问题,就是在code上,bi a
C语言代码,求高手解答,为什么没有错误,但是结果不对
#include #include char *cmonth(int month) { char str_month[]={ "Illegal Month" "January" "February" "March" "April" "May" "June" "July" "August" "September" "October" "November"
OJ提交错误原因
Waiting:正在评测程序。  Compiling:正在编译程序。  Accepted:程序正确。  Wrong Answer:程序运行结果与正确结果不一样。  Time Limit Exceeded:运行时间超出了要求。  Memory Limit Exceeded:程序运行占用内存超出了标准。  Runtime Error:程序在运行的时候异常退出。  Compile Erro
编译器突然报错找不到各种标识符
今天写程序遇到一个问题,用c语言写的本来好好的,因为排序算法可以用c++中的sort()函数,于是引入了c++的库函数,结果程序出错。/ jobdu.cpp : Defines the entry point for the console application. //#include "stdafx.h" #include <stdio.h> //#include "1202_qsort.h"
CCF CSP 编译错误问题
CCF CSP 编译错误
在Matlab中配置C编译器的问题
在Matlab中配置C编译器的问题
一道八进制的编程题,在本地运行结果正常,在牛客网提交编译提示输出错误
一道八进制的编程题,在本地运行结果正常,在牛客网提交编译提示输出错误     题目描述 输入一个整数,将其转换成八进制数输出。  输入描述: 输入包括一个整数N(0。   输出描述: 可能有多组测试数据,对于每组数据, 输出N的八进制表示数。 输入例子: 7 8 9   输出例子: 7 10 11   代码:           1 im
MyEclipse一个jsp文件红叉,但是打开文件后却找不到错误
今天晚上打开MyEclipse,从svn上重新检出一个工程,发现package explore窗口中看见admin.jsp上打着一个红叉,但是打开后没有发现任何错误,没有报错的地方。按照以前的办法:将admin.jsp内容都删掉,然后保存,再将内容都粘贴上,还是报错。将admin.jsp页面拷出来,删掉,在拷贝回去,也还是不行。最后,将admin.jsp页面删掉,然后新建一个jsp页面,将名字改成
字符串水题——相对分子质量
问题 G: 相对分子质量 时间限制: 1 Sec  内存限制: 32 MB 提交: 5  解决: 5 [提交][状态][讨论版] 题目描述 小明最近迷上了化学,几乎天天在实验室做实验,但是很多实验生成的化学产物的相对分子质量令他很困惑,不知如何计算,请你编程帮他计算。 输入 输入的第一行是一个正整数n,表示有n组测试数据。 接下来n行每行输入一个字符串,表示某个分子式,分子式中只包
xcode 的编译时提醒报错,但却没有提示错误的位置
原因在于 xcode 的错误提示默认只提示当前时间的编译错误,对于以前出现的编译错误,若是现在未能识别,则仍会保留在以前的题型中,如下图所示,在报告导航栏中,找出以前的编译报告,查看错误。   这应该是xcode的一个BUG所在。 参考链接:http://wuchaorang.2008.blog.163.com/blog/static/4889185220153702829966/