每次执行程序就会停止工作

sky?? 2016-04-16 03:42:09
题目:输入五个国家名字并按字母排序输出。
我想用指针数组的方法,每次调试的时候没问题,执行的话,系统就会停止工作,下边是我写的程序:
#include<stdio.h>
#include<string.h>
void main()
{
void change(char*p1,char*p2);

char*country[6];
int i,j,n=6;
printf("请输入5个国家名字:\n");
for(i=1;i<n;i++)
scanf("%s",country[i]);
printf("名字排序如下:\n");
for(i=1;i<n;i++)
for(j=1;j<n-i;j++)
change(country[j+1],country[j]);
for(i=1;i<n;i++)

printf("%s\n",country[i]);
}
void change(char*p1,char*p2)
{
char *temp;
if(strcmp(p1,p2)<0)
{
temp=p1;
p1=p2;
p2=temp;
}
}
...全文
237 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2016-04-18
  • 打赏
  • 举报
回复
zhouxiaofeng1021 2016-04-18
  • 打赏
  • 举报
回复
DEBUG 调试 进入堆栈 可以看出程序异常的位置 查看变量值~~~
trytry1992 2016-04-18
  • 打赏
  • 举报
回复
引用 5 楼 zhao4zhong1 的回复:
这一个表情代表的意思是:眼过千遍不如手过一遍!书看千行不如手敲一行!…………以下省略300字
paschen 2016-04-16
  • 打赏
  • 举报
回复
你的country只是一个包含6个char*的数组,这6个char*的指针并没有分配内存
小灸舞 版主 2016-04-16
  • 打赏
  • 举报
回复
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止。 代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。 提醒:再牛×的老师也无法代替学生自己领悟和上厕所! 单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。
小灸舞 版主 2016-04-16
  • 打赏
  • 举报
回复
代码崩溃是因为你没有给指针分配空间,它指向的是一块未知的内存区域,你直接用scanf写入自然崩溃
我这里用malloc为每个字符串开辟空间,同时楼主的change函数也有问题,楼主那样直接交换

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void main (void)
{
void change(char*p1,char*p2);

char*country[6];
int i,j,n=6;
printf("请输入5个国家名字:\n");
for(i=1;i<n;i++)
{
char buff[64] = {0};
scanf("%s", buff);
country[i] = (char *)malloc(strlen(buff) + 1);
strcpy(country[i], buff);
}

printf("名字排序如下:\n");
for(i=1;i<n;i++)
for(j=1;j<n-i;j++)
change(country[j+1],country[j]);
for(i=1;i<n;i++)

printf("%s\n",country[i]);
}
void change(char*p1,char*p2)
{
char temp[64] = {0};
if(strcmp(p1,p2)<0)
{
strcpy(temp, p1);
strcpy(p1, p2);
strcpy(p2, temp);
}

}

liulin2017 2016-04-16
  • 打赏
  • 举报
回复
打印日志,就知道哪几行代码有崩溃

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧