谁帮我看下 这个函数调用哪里错了?谢谢~

king_small_smaller 2012-11-17 10:48:24

#include <stdio.h>
#include <string.h>
int main()
{ char str[10];
void max(char str_1[]);

gets(str);

max(str);

return 0;

}
void max(char str_1[])
{ int i,j,t,m;

for(i=0;i<10;i++)

{ for(j=0;(j<9-i)&&(str_1[j]!='\0');j++)

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

{ t=str_1[j];
str_1[j]=str_1[j+1];
str_1[j+1]=t; }}

puts(str_1);

}


功能: 输入一串字符 按大小顺序输出
调试结果不对啊,谁帮我看下 谢谢~
...全文
154 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
king_small_smaller 2012-11-17
  • 打赏
  • 举报
回复
万分感谢~
引用 16 楼 zhuankeshumo 的回复:
b大 if(str_1[i]>str_1[j]) //排序规则 可以是从小到大或从大到小
newtee 2012-11-17
  • 打赏
  • 举报
回复
b大 if(str_1[i]>str_1[j]) //排序规则 可以是从小到大或从大到小
king_small_smaller 2012-11-17
  • 打赏
  • 举报
回复
哈哈,明白拉! 再麻烦一下, 再问一个问题哈 就是字符 大小是根据ASCII码 比较的吗? a 和b 谁大?
引用 12 楼 zhuankeshumo 的回复:
例如你输入aaavv strlen后的长度为5
转角天边 2012-11-17
  • 打赏
  • 举报
回复
引用 10 楼 king_small_smaller 的回复:
比如 str_1[20] i<strlen(str_1) 意思是 i<20吗? 引用 9 楼 king_small_smaller 的回复:嗯嗯,问下那个 strlen什么意思?百度没看明白。。。谢谢 引用 6 楼 zhuankeshumo 的回复:排序算法错了 其他没错
strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到'\0'停止。 sizeof()返回的是变量声明后所占的内存数,不是实际长度,此外sizeof不是函数,仅仅是一个操作符,strlen是函数。
慧钦 2012-11-17
  • 打赏
  • 举报
回复

void max(char str_1[])
{   int i,j,t,m;
  
    for(i=0;i<10;i++)
 // 这个判断跟下面的用法有问题,即使你的str_1[j] != '0',你下面的str_1[j+1]却是会等于'\0'的
// 所以最后就是把整个字符串都换成0了,输出就看不到了,你自己改一下,体验一下吧
    { for(j=0;(j<9-i)&&(str_1[j]!='\0');j++) 
 
      if(str_1[j]>str_1[j+1])
 
      { t=str_1[j];
        str_1[j]=str_1[j+1];
        str_1[j+1]=t;   }} 
 
    puts(str_1);
 
}
newtee 2012-11-17
  • 打赏
  • 举报
回复
例如你输入aaavv strlen后的长度为5
newtee 2012-11-17
  • 打赏
  • 举报
回复
引用 10 楼 king_small_smaller 的回复:
比如 str_1[20] i<strlen(str_1) 意思是 i<20吗? 引用 9 楼 king_small_smaller 的回复:嗯嗯,问下那个 strlen什么意思?百度没看明白。。。谢谢 引用 6 楼 zhuankeshumo 的回复:排序算法错了 其他没错
是你输入的字符串的长度
king_small_smaller 2012-11-17
  • 打赏
  • 举报
回复
比如 str_1[20] i<strlen(str_1) 意思是 i<20吗?
引用 9 楼 king_small_smaller 的回复:
嗯嗯,问下那个 strlen什么意思?百度没看明白。。。谢谢 引用 6 楼 zhuankeshumo 的回复:排序算法错了 其他没错
king_small_smaller 2012-11-17
  • 打赏
  • 举报
回复
嗯嗯,问下那个 strlen什么意思?百度没看明白。。。谢谢
引用 6 楼 zhuankeshumo 的回复:
排序算法错了 其他没错
newtee 2012-11-17
  • 打赏
  • 举报
回复
上面贴错了
#include <stdio.h>
#include <string.h>
int main()
{   char str[100];
    void max(char str_1[]);
 
    gets(str);
   
    max(str);
      puts(str);
    return 0;
 
}
void max(char str_1[])
{   int i,j;
  char t;
  
    for(i=0;i<strlen(str_1)-1;i++)
 
    { for(j=i+1;j<strlen(str_1);j++)
 
      if(str_1[i]>str_1[j])
 
      { t=str_1[j];
        str_1[j]=str_1[i];
        str_1[i]=t;   }}  

}
king_small_smaller 2012-11-17
  • 打赏
  • 举报
回复

#include <stdio.h>
#include <string.h>
int main()
{	void exchange(char str_1[]);
	char str[10];
	gets(str);

	exchange(str);

	return 0;

}
void exchange(char str_1[])
{	int i,j,t,m;
 
	for(i=0;i<10;i++)

	{ for(j=0;j<9-i;j++)

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

	  { t=str_1[j];
		str_1[j]=str_1[j+1];
		str_1[j+1]=t;	}}	

	puts(str_1);

}
结果 和我输入的一样 没排序。。。 不知道哪里错了。。。
引用 2 楼 anhuizhuanjiao 的回复:
函数没有申明 还有你max函数是要干吗 for(i=0;i<10;i++) { for(j=0;(j<9-i)&&(str_1[j]!='\0');j++) 这里肯定有问题
newtee 2012-11-17
  • 打赏
  • 举报
回复
排序算法错了 其他没错
newtee 2012-11-17
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <string.h>
int main()
{   char str[100];
    void max(char str_1[]);
 
    gets(str);
   
    max(str);
      puts(str_1);
    return 0;
 
}
void max(char str_1[])
{   int i,j;
  char t;
  
    for(i=0;i<strlen(str_1);i++)
 
    { for(j=i+1;j<strlen(str_1);j++)
 
      if(str_1[i]>str_1[j])
 
      { t=str_1[j];
        str_1[i]=str_1[j];
        str_1[j]=t;   }}  

}
king_small_smaller 2012-11-17
  • 打赏
  • 举报
回复
char str[10]; void max(char str_1[]);
引用 3 楼 king_small_smaller 的回复:
呃,,这里这么写 应该就是声明了啊。。。 引用 1 楼 karenxs 的回复:任何函数的调用需要在main函数之前声明
king_small_smaller 2012-11-17
  • 打赏
  • 举报
回复
呃,,这里这么写 应该就是声明了啊。。。
引用 1 楼 karenxs 的回复:
任何函数的调用需要在main函数之前声明
转角天边 2012-11-17
  • 打赏
  • 举报
回复
函数没有申明 还有你max函数是要干吗 for(i=0;i<10;i++) { for(j=0;(j<9-i)&&(str_1[j]!='\0');j++) 这里肯定有问题
karenxs 2012-11-17
  • 打赏
  • 举报
回复
任何函数的调用需要在main函数之前声明

69,336

社区成员

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

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