2019春第五周作业

要求回答
这个作业属于哪个课程

C语言程序设计

这个作业的要求在哪儿 https://edu.cnblogs.com/campus/zswxy/computer-scienceclass3-2018/homework/2827
在这个课程的目标 巩固字符串的运用
这个作业在哪些方面帮助我 重新复习运用了字符串
参考文献 C语言程序设计
7-1 英文单词排序 (25 分)
 

本题要求编写程序,输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。

输入格式:

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

输出格式:

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

输入样例:

blue
red
yellow
green
purple
#

输出样例:

red blue green yellow purple 

老师要求

1)通过以自己名字命名的文件输入英文单词
2)英文单词输入的结束标记为你学号最后一位数+37所对应的ASCII字符。(例如:你的学号最后一位为9,则结束标记为9+37=46所对应的ASCII字符“.”
3)在不删除原有内容的情况下,将排序后的单词输出到文件。

 

1.实验代码

#include<stdio.h>
#include<string.h>
int main(void)
{
int n,i,j,min,k,temp,a[20];
char str[20][10],t[10];    /*前面的字符串表示输入的英文单词总数,后面的表示英文单词长度*/
i=0; 
for(i=0;i<20;i++){    /*i:单词个数*/
scanf("%s",str[i]);
a[i]=strlen(str[i]);
if(str[i][0]=='#'){
break;
}
}
for(k=0;k<i;k++){   /*比较次数*/
min=k; 
for(j=k+1;j<i;j++){   
if(a[j]<a[min]){
min=j;
}
}
temp=a[min];
a[min]=a[k];
a[k]=temp;
strcpy(t,str[min]);   /*strcpy:字符串复制函数*/
strcpy(str[min],str[k]);
strcpy(str[k],t);
}
for(n=0;n<i;n++){
printf("%s ",str[n]);
}

return 0;
}

2.文本文档

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

int main()

{

   FILE*fp;

char str[20][10],a[20],t[10];

int i,j,k,temp,index,n;

if((fp=fopen("C:\\zs.txt","a+"))==NULL)

{

printf("File open error!");

exit(0);

}

for(i=0;i<20;i++)

{

fscanf(fp,"%s",&str[i]);

scanf("%s",&str[i]);

if(str[i][0]=='%')

break;

else

a[i]=strlen(str[i]);

 }

 for(k=0;k<i;k++)

{

index=k;

for(j=k+1;j<i;j++)

{

if(a[j]<a[index]) index=j;

}

temp=a[index];

a[index]=a[k];

a[k]=temp;

strcpy(t,str[index]);

strcpy(str[index],str[k]);

strcpy(str[k],t);

}

for(n=0;n<i;n++)

{

printf("%s ",str[n]);

}

for(n=0;n<i;n++)

{

fprintf(fp,"%s ",str[n]);

}

if(fclose(fp))

{

printf("Can not close the file!");

exit(0);

}

return 0;

}

3.运行截图

 

 4.流程图

 

 预习题目

总结
本周要求我们对字符串的掌握以及对上周的数组的运用,要学习了字符串、单词排序,指针变量

 

 

posted on 2019-03-29 22:52  夕鹿生  阅读(237)  评论(2编辑  收藏  举报