第五周作业

格式

这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/computer-scienceclass1-2018/homework/2828
我在这个课程的目标是 完全掌握数组
这个作业在那个具体方面帮助我实现目标 学会用代码对英文单词进行排序
参考文献 在课堂结束时拍下课件内容

本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
输入格式:

输入给出一行字符。
输出格式:

在一行中输出单词个数。
输入样例:

Let's go to room 209.
输出样例:

5

include<stdio.h>

include<string.h>

int main()
{
int i,c=0;
char a[10000];
gets(a);
if(a[0]==' ')
c=0;
else
c=1;
for(i=0;a[i]!='';i++)
{

if(a[i]==' ' && a[i+1]!=' ' && a[i+1]!='')
{
     c++;
}

}
printf("%d ",c);
return 0;
}

输入格式:

输入为若干英文单词,每行一个,以#作为输入结束标志。其中英文单词总数不超过20个,英文单词为长度小于10的仅由小写英文字母组成的字符串。
输出格式:

输出为排序后的结果,每个单词后面都额外输出一个空格。
输入样例:

blue
red
yellow
green
purple

输出样例:

red blue green yellow purple

博客园附加要求:

(1)通过以自己名字命名的文件输入英文单词

(2)英文单词输入的结束标记为你学号最后一位数+37所对应的ASCII字符。(例如:你的学号最后一位为9,则结束标记为9+37=46所对应的ASCII字符“.”)

(3)在不删除原有内容的情况下,将排序后的单词输出到文件。

include <stdio.h>

include <string.h>

include<stdlib.h>

int main()
{
FILE*fp;
int i,j,index,n,c;
char s1[21][11],temp[11];

n=0;
if((fp=fopen("c: extJCclub xt","a+"))==NULL
{
printf("File open error! ");
exit(0);
}

while(1)
{
scanf("%s",s1[n]);
if(s1[n][0]=='#')
{
break;
}
n++;
}
s1[n][0]='';
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
{
if(strlen(s1[j])>strlen(s1[j+1])) //strlen检测字符长度//
{
strcpy(temp,s1[j]);
strcpy(s1[j],s1[j+1]);
strcpy(s1[j+1],temp);
}
}
}
for(i=0;i<n;i++)
{
fprintf(fp,"%s ",s1[i]);
}
fprintf(fp,"*",c);
if(fclose(fp)){
printf("Can not close the file! );
exit(0);
}
return 0;
}
问题,for语句中初始值不一样;
解决方法,dev进行调试,初始化值更换;

周/日期 这周所用时间 代码行 学到的知识点简介 目前比较迷惑的问题
3/9-3/15 12小时左右 240左右 二维数组 对矩阵的上下三角形的一些规律,运用的不熟练
3/16-3/22 8小时左右 200左右 选择排序法 对题目进行思路分析不够全面
3/23-3/29 10小时30分钟左右 在定义指针变量时需要使用指针声明符 * ,但指针声明符并不是指针的组成部分 指针变量的初始化

原文地址:https://www.cnblogs.com/JCclub/p/10618364.html