帮帮孩子,没有输出结果qwq
本帖最后由 magic5trick 于 2022-5-23 22:25 编辑不知道为什么一直得不到结果qwq
#defne_CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#define N 10
char str;
int main()
{
void sort(char[]);
int a, flag;
for (flag = 1; flag == 1;)
{
printf("输入字符串:\n");
scanf("%s", &str);
if (strlen(str) > N)
printf("字符串太长,请重新输入!");
else
flag = 0;
}
sort(str);
printf("string sorted:\n");
for (a = 0; a < N; a++)
printf("%c", str);
printf("\n");
return 0;
}
void sort(char str[])
{
int a, b;
char c;
for (b = 1; b < N; b++)
for (a = 0; (a < N - b) && (str != '\0'); a++)
if (str > str)
{
c = str;
str = str;
str = c;
}
}
调试时说是0x00007FFF40042079 (ucrtbased.dll)处(位于 Project18.exe 中)引发的异常: 0xC0000005: 写入位置 0x00007FF7FC62E000 时发生访问冲突。 #defne_CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#define N 10
char str ;
void sort(char str[])
{
int i , j , k , n ;
char c ;
for(n = 0 ; str ; n ++) ;
for(i = 0 ; i < n - 1 ; i ++) {
for(k = i , j = i + 1 ; j < n ; j ++) if(str < str) k = j ;
if(k != i) {
c = str ;
str = str ;
str = c ;
}
}
}
int main(void)
{
int i , n ;
char c ;
for(;;) {
printf("输入字符串: ") ;
for(n = 0 ; (c = getchar()) != '\n' && n < N ; n ++ , str = '\0') str = c ;
if(n == N && c != '\n') {
printf("字符串太长,请重新输入!\n") ;
fflush(stdin) ;
} else break ;
}
if(n > 0) {
sort(str) ;
printf("string sorted:\n") ;
for (i = 0 ; i < n ; i ++) printf("%c" , str) ;
printf("\n") ;
}
} 谢谢大佬,但修改的我好像都不认识{:10_266:}
页:
[1]