magic5trick 发表于 2022-5-23 22:25:14

帮帮孩子,没有输出结果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 时发生访问冲突。

jackz007 发表于 2022-5-23 23:14:32

#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")                                                                  ;
      }
}

magic5trick 发表于 2022-5-24 15:52:21

谢谢大佬,但修改的我好像都不认识{:10_266:}
页: [1]
查看完整版本: 帮帮孩子,没有输出结果qwq