C语言程序,哪里错了,显示的是段错误,题目是01串排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言程序,哪里错了,显示的是段错误,题目是01串排序相关的知识,希望对你有一定的参考价值。

将01串首先按长度排序,长度相同时,按1的个数从少到多进行排序,1的个数相同时再按ASCII码值排序。
#include<stdio.h>
#include<string.h>
void change(char *x,char *y)

int a,i;
char c;
a=strlen(x);
if (strlen(y)>a) a=strlen(y);
for(i=0;i<a;i++)

c=x[i];
x[i]=y[i];
y[i]=c;


main()

int b[100],i,j,k,c,t,h;
char a[100];
char *d[100];
d[k]=&a[k];
while(scanf("%c",&a[k])!=EOF)

b[k]=strlen(d[k]);
k=k+1;

for(i=1;i<=k-1;i++)

for(j=1;j<=k-i;j++)

if(b[j]>b[j+1])

change(d[j],d[j+1]);
t=b[j];
b[j]=b[j+1];
b[j+1]=t;

if(b[j]==b[j+1])

while(b[j]!=0)

h=h+1;
b[j]=b[j]&(b[j]-1);

while(b[j+1])

c=c+1;
b[j+1]=b[j+1]&(b[j+1]-1);

if(c>h)

t=b[j];
b[j]=b[j+1];
b[j+1]=t;
change(d[j],d[j+1]);

else if(c==h)

if(a[j+1]<a[j])

t=b[j];
b[j]=b[j+1];
b[j+1]=t;
change(d[j],d[j+1]);





for(i=1;i<=k;i++)

printf("%s\n",a[i]);

参考技术A 改成这样:
#include<stdio.h>
#include<string.h>
void change(char *x,char *y)

int a,i;
char c;
a=strlen(x);
if (strlen(y)>a) a=strlen(y);
for(i=0;i<a;i++)

c=x[i];
x[i]=y[i];
y[i]=c;


int main()

int b[100],i,j,k=1,c,t,h;
//char a[100];
char d[100][100];
while(k<100&&(scanf("%s",d[k])!=EOF))

b[k]=strlen(d[k]);
k=k+1;

for(i=1;i<=k-1;i++)

for(j=1;j<=k-i-1;j++)

if(b[j]>b[j+1])

change(d[j],d[j+1]);
t=b[j];
b[j]=b[j+1];
b[j+1]=t;

if(b[j]==b[j+1])

h=0;
t=0;
while(d[j][t]!=0)

if(d[j][t++]=='1')
h=h+1;

c=0;
t=0;
while(d[j+1][t]!=0)

if(d[j+1][t++]=='1')
c=c+1;

if(c<h)

t=b[j];
b[j]=b[j+1];
b[j+1]=t;
change(d[j],d[j+1]);

else if(c==h)

if(strcmp(d[j+1],d[j])<0)

t=b[j];
b[j]=b[j+1];
b[j+1]=t;
change(d[j],d[j+1]);





for(i=1;i<k;i++)

printf("%s\n",d[i]);

return 0;
本回答被提问者采纳

一个servlet问题?运行之后,提示404错误,请问哪里错了??

通过jsp页面提交表单到servlet中,处理完之后(将表单信息添加到数据库),跳转到显示信息页面,
web.web配置如下:
<servlet>
<description></description>
<display-name>addVendorServlet</display-name>
<servlet-name>addVendorServlet</servlet-name>
<servlet-class>myservlet.addVendorServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>addVendorServlet</servlet-name>
<url-pattern>/myservlet/addVendorServlet</url-pattern>
</servlet-mapping>
表单 action ="/myservlet/addVendorServlet"
addVendorServlet.java代码:
package myservlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import bean.Vendor;
import dao.VendorDAO;

public class addVendorServlet extends HttpServlet

/**
* 添加新的供应商;
* @author Administrator
*
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException

System.out.println("hello");
String vname = request.getParameter("gongying");
String city =request.getParameter("chengshi");
String address = request.getParameter("dizhi");
String postcode = request.getParameter("youbian");
String phone = request.getParameter("dianhua");
String linkman = request.getParameter("lianxiren");
String status = request.getParameter("status");

Vendor vendor= new Vendor(vname,city,address,postcode,phone,linkman,status);
VendorDAO vendorDao = new VendorDAO();
boolean flag = vendorDao.addVendor(vendor);

if(flag)

request.setAttribute("vname",vname);
request.setAttribute("city",city);
request.setAttribute("address",address);
request.setAttribute("postcode",postcode);
request.setAttribute("phone",phone);
request.setAttribute("linkman",linkman);
request.setAttribute("status",status);
response.sendRedirect("/getVendor.jsp");

else

response.sendRedirect("/um/404.html");




显示页面getVendor.jsp

404 not found
未找到该网页,说明此网页已经在服务器被删除或被改名。在安全助手里添加黑名单,把这个网站的网址输入进去。不让他弹出。
404是对NOT FOUND这种错误情况的一个编码,HTTP协议的错误信息在不同软件、不同的语言描述可能不同,但是其代码是统一的,以便浏览器能够正确识别和处理。
参考技术A action="addVendorServlet"
而不是像你写的那样,你配servle的时候,配置了一个name,下边配了一个mapping指定这个servlet的具体指向,调用的时候,直接调用这个name名字就可以,如果还是调用不来,查看你的servletmapping指向问题追问

我运行的时候,url可以跳转到addVendorSrevlet,是servlet代码有错,还是web.xml配置错了?
这个是目录结构

追答

你现在可以跳到servlet,并且servlet 中的程序己经执行,那里配置文件是没有错误,查看一下你的servlet,看一下哪里出错

本回答被提问者和网友采纳
参考技术B boolean flag = vendorDao.addVendor(vendor);追问

什么意思??这句错了么???

参考技术C action 中指定result 了?追问

你是问这个么?action ="/myservlet/addVendorServlet"

追答

在struts.xml中

/xxx /xxx.jsp
...

以上是关于C语言程序,哪里错了,显示的是段错误,题目是01串排序的主要内容,如果未能解决你的问题,请参考以下文章

我写了一个C语言程序。但输出结果为一串乱码。不知道是哪里错误了

keil编程中为啥总说我变量未定义? 不只是keil,C语言也经常有这种情况。根本不知道哪里错了

用devcpp软件C语言程序编写一行输出30个'*',不知哪里错了

c语言冒泡排序法代码一直排序错误,有时只能排前两个,不明白原因,请问究竟哪里写错了,谢谢!

急求助,C语言,计算两个日期之间的天数,不知道我的算法到底哪里错了,运行结果是错误的,求大神帮忙看看

大佬帮我看一下这道Python题我哪里错了