颠倒句子中的单词顺序(哈工大Mooc)
发布日期:2021-06-30 22:22:25 浏览次数:2 分类:技术文章

本文共 1560 字,大约阅读时间需要 5 分钟。

Mooc课后习题集 及 做到的一些有趣的题

啊 关于这道题 因为我在上传的时候我有意识的去把哈工大后面的编程题题目和我上传的博客 题目改成一样 目的就是还想着 以后大一的新同学如果还用哈工大mooc的教材有不会的题 搜索出来也方便

当时我在我做过的题中 找这个题的程序 找了半天才找到 我把答案输进去试了一下 结果发现答案是错的:) 于是乎我又重新做了一次
这道题有很多地方需要注意 因为笔者也是调试了好久才调试成功qwq 水平有限 用指针还不是很会做hhhhh 希望这个能对大家有所启发

#include
#include
#define ARR_SIZE 100int Inverse(char str1[ARR_SIZE],char str2[ARR_SIZE][ARR_SIZE]);int main(){
int rows; char str1[ARR_SIZE],str2[ARR_SIZE][ARR_SIZE],character; //首先初始化字符串 character表示最后的符号 printf("Please enter a string: "); gets(str1); //获取字符串str1 character = str1[strlen(str1)-1]; //这个是把符号给提取出去 剪1的原因是字符串是从0开始的 //而strlen不会读入'\0' str1[strlen(str1)-1] = '\0'; //这个是把最后的符号给直接变空 免得把后面的Inverse给影响到了 rows = Inverse(str1,str2); //rows返回的是str2一共有的行数 printf("The inversed string is: "); while(--rows) {
printf("%s ",str2[rows]); } printf("%s%c\n",str2[rows],character); return 0;}int Inverse(char str1[ARR_SIZE],char str2[ARR_SIZE][ARR_SIZE]){
int i=0,j=0,k=0; //i 记录str1的具体字符位置 j表示行数 k表示每一列 for(; ;) //重复循坏 {
if(str1[i] != ' ' && str1[i] != '\0') str2[j][k++] = str1[i++]; //这里是当str1中有效字符 赋值并且i向后移 k向后移动 else if(str1[i] == ' ') {
j++; i++; k=0; //将列数自动移到0 i继续向后移动 j来到下一行 } if(str1[i] == '\0') {
str2[j++][k] = ' '; //结束时最后一行的末尾还需要加个空格 //因为待会printf时是从最后一行开始读取 //会导致第一组字符和第二组 没有间隔 break; } } return j;}

转载地址:https://love6.blog.csdn.net/article/details/110245230 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:c语言贪吃蛇(简易版本含完整代码)
下一篇:山地训练

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月08日 13时39分17秒