写一个函数(起泡法),输入10个字符按a-z排序
本帖最后由 荆襄楚樊 于 2021-10-5 10:11 编辑#include <stdio.h>
#include <string.h>
#define N 10
char str;
void sort(char str[])
{
int i;
int j;
char t;
for (j = 1; j < N; j++)
{
for (i = 0; (i < N - j) && (str != '\0'); i++)
{
if (str > str)
{
t = str;
str = str;
str = t;
}
}
}
}
int main(void)
{
int i;
int flag;
for (flag = 1; flag == 1;)
{
printf("输入字符串:\n");
scanf_s("%s", str);
if (strlen(str) > N)
{
printf("字符串太长,请重新输入!");
}
else
{
flag = 0;
}
}
sort(str);
printf("字符串排序:\n");
for (i = 0; i < N; i++)
{
printf("%c", str);
}
printf("\n");
return 0;
}
/*
在VS2019中输出结果是:
-------------------------
输入字符串:
reputation
-------------------------
未输出
*/ 本帖最后由 jhq999 于 2021-9-28 22:17 编辑
#include <stdio.h>
#include <string.h>
#define N 100
char str;
void sort(char str[])
{
int i;
int j;
char t;
int flag=0;
for (j = 1; str; j++)
{
flag=0;
for (i = 1; str; i++)
{
if (str > str)
{
flag=1;
t = str;
str = str;
str = t;
}
}
if (!flag)break;
}
}
int main(void)
{
int i;
int flag;
for (flag = 1; flag == 1;)
{
printf("输入字符串:\n");
scanf("%s", str);
if (strlen(str) > N)
{
printf("字符串太长,请重新输入!");
}
else
{
flag = 0;
}
}
sort(str);
printf("字符串排序:\n");
for (i = 0; str; i++)
{
printf("%c", str);
}
printf("\n");
return 0;
} jhq999 发表于 2021-9-28 18:09
复制你的代码,还是不能输出。 本帖最后由 jhq999 于 2021-9-28 21:55 编辑
荆襄楚樊 发表于 2021-9-28 20:44
复制你的代码,还是不能输出。
scanf_s("%s", str);换成scanf("%s", str);试试
多问一句你是不是加了_CRT_SECURE_NO_WARNINGS; jhq999 发表于 2021-9-28 21:52
scanf_s("%s", str);换成scanf("%s", str);试试
多问一句你是不是加了_CRT_SECURE_NO_WARNINGS;
换成scanf("%s", str)也不行。
_CRT_SECURE_NO_WARNINGS不知道加在什么地方,你还是把代码改好我复制,才学习C的小白 没问题啊? 本帖最后由 荆襄楚樊 于 2021-9-29 10:33 编辑
jhq999 发表于 2021-9-28 22:20
没问题啊?
你的代码17、21-22行是而我抄书上的是,只是一个在前一个在后,请解释一下。 本帖最后由 jhq999 于 2021-9-29 10:56 编辑
荆襄楚樊 发表于 2021-9-29 10:22
你的代码17、21-22行是而我抄书上的是,只是一个在前一个在后,请解释一下。
i=1; if (str > str)
i=2; if (str > str)
。。。。。。。
一直到str='\0'之前,设为max:那么就是if (str > str)
我这个效率不如你贴的,只不过明了点,你的原因还是scantf和scantf_s之间的问题 jhq999 发表于 2021-9-29 10:43
我这个效率不如你贴的,只不过明了点,你的原因还是scantf和scantf_s之间的问题
谢谢你这几天的回答,你正确的代码是用的哪个编程软件写出来的。 荆襄楚樊 发表于 2021-9-29 14:31
谢谢你这几天的回答,你正确的代码是用的哪个编程软件写出来的。
vs2012 jhq999 发表于 2021-9-29 14:32
vs2012
谢谢啦!
页:
[1]