紧急求解!!!c语言大神

输入为两行,第一行为两个用空格分隔的正整数n,m,第二行为n*m个用空格分隔整数。测试用例保证所有整数可以用int存储,且为这n*m个整数申请内存不会超出内存限制。输出按... 输入为两行,第一行为两个用空格分隔的正整数n,m,第二行为n*m个用空格分隔整数。测试用例保证所有整数可以用int存储,且为这n*m个整数申请内存不会超出内存限制。
输出按矩阵格式输出,具体见样例。
已知正整数n,n的范围不确定。从键盘读入n个字符串,每个字符串的长度小于1000,要保存到动态数组中。为了能访问到所有的字符串,需要建立一个长度为n的动态指针数组,用于保存n个字符数组的内存地址。在读入每个字符串时,用一个长度为1000的字符数组作为缓冲数组,将字符串读入并求出长度后,再动态分配空间,将缓冲数组中的字符串复制到新分配的动态空间中,并将动态空间的首地址保存到指针数组中。读完n个字符串后你要将这n个字符串按照ASCII码顺序升序排序,然后再打印到屏幕上。字符串中可能包含大小写字母“A-Z”、“a—z”与空格字符。每个字符串以换行符结束输入。
输入与输出要求:输入一个正整数n,代表待排序字符串的个数。然后输入n个字符串,每个字符串至少包含一个字符,占一行。输出排序后的n个字符串,每个字符串占一行。
程序运行效果:
Sample 1:
10
Bb b
zzz zzz
aab bbccc
aaabbaaa
abb bbb
ccidfjD
Aidj idj
Ccidf jD
sidfjijE EE
kkkkkk
Aidj idj
Bb b
Ccidf jD
aaabbaaa
aab bbccc
abb bbb
ccidfjD
kkkkkk
sidfjijE EE
zzz zzz
展开
 我来答
冯小气气
2019-01-31 · 知道合伙人IT服务行家
冯小气气
知道合伙人IT服务行家
采纳数:98 获赞数:239
八年编程经验,公司核心技术人员。

向TA提问 私信TA
展开全部
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

void SortBuf(char* buf, int len)
{
for (int i = 0; i < len - 1; i++)
{
for(int j = 0; j < len - 1 - i; j++)
if(buf[j] > buf[j + 1])
{
int tmp = buf[j + 1];
buf[j + 1] = buf[j];
buf[j] = tmp;
}
}
}

int _tmain(int argc, _TCHAR* argv[])
{
int n;
char temp[1000];
int len;
printf("Enter n:");
scanf("%d",&n);
getchar();
char** strP = (char**)malloc(sizeof(char*) * n);
for (int i = 0; i < n; i++)
{
memset(temp, 0, sizeof(temp));
gets(temp);
len = strlen(temp);
strP[i] = (char*)malloc(sizeof(char) * len + 1);
SortBuf(temp, len);
memcpy(strP[i], temp, len + 1);
}

printf("排序后输出结果:\n");
for(int i = 0; i <n; i++)
{
printf("%s\n",strP[i]);
free(strP[i]);
}
free(strP);
return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式