要求 | 回答 |
---|---|
这个作业属于哪个课程 |
C语言程序设计 |
这个作业的要求在哪儿 | https://edu.cnblogs.com/campus/zswxy/computer-scienceclass3-2018/homework/2827 |
在这个课程的目标 | 巩固字符串的运用 |
这个作业在哪些方面帮助我 | 重新复习运用了字符串 |
参考文献 | C语言程序设计 |
本题要求编写程序,输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。
输入格式:
输入为若干英文单词,每行一个,以#
作为输入结束标志。其中英文单词总数不超过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.文本文档
4.流程图
预习题目
总结
本周要求我们对字符串的掌握以及对上周的数组的运用,要学习了字符串、单词排序,指针变量