问题遇到的现象和发生背景
遇到的现象和发生背景,请写出第一个错误信息
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
#include
#include
int main()
{
char* p[10],str[10][20];
int i;
for (i = 0;i < 10;i++)
p[i] = str[i];
printf("请输入10个字符串:\n");
for (i = 0;i < 10;i++)
scanf_s(" % s",&p[i]);
printf("字符串本来的顺序\n");
for (i = 0;i < 10;i++)
{
printf("%s\n", *p[i]);
}
printf("\n");
void sort(char* p[10], int n);
sort(p, 10);
printf("排序后…\n");
for (i = 0;i < 10;i++)
{
printf("%s\n", p[i]);
}
printf("\n");
return 0;
}
void sort(char* p[10], int n)
{
int i, j, k;
char* temp;
for (i = 0;i < n - 1;i++) //选择法排序
{
k = i;
for (j = i + 1;j < n;j++)
{
if (strcmp(p[j], p[k]) > 0)
k = j;
}
if (i != k)
{
temp = p[i];
p[i] = p[k];
p[k] = temp;
}
}
}
运行结果及详细报错内容

我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”
#include <stdio.h>
#include <string.h>
int main()
{
char *p[10], str[10][20];
int i;
for (i = 0; i < 10; i++)
p[i] = str[i];
printf("请输入10个字符串:\n");
for (i = 0; i < 10; i++)
scanf_s("%s", p[i], 20); // scanf_s("%s", &p[i]);
printf("字符串本来的顺序\n");
for (i = 0; i < 10; i++)
{
printf("%s\n", p[i]); // printf("%s\n", *p[i]);
}
printf("\n");
void sort(char *p[10], int n);
sort(p, 10);
printf("排序后…\n");
for (i = 0; i < 10; i++)
{
printf("%s\n", p[i]);
}
printf("\n");
return 0;
}
void sort(char *p[10], int n)
{
int i, j, k;
char *temp;
for (i = 0; i < n - 1; i++) // 选择法排序
{
// k = i;
for (j = i + 1; j < n; j++)
{
if (strcmp(p[j], p[i]) > 0) // if (strcmp(p[j], p[k]) > 0)
{
// k = j;
temp = p[j];
p[j] = p[i];
p[i] = temp;
}
}
// if (i != k)
// {
// temp = p[i];
// p[i] = p[k];
// p[k] = temp;
// }
}
}