C语言第五次作业
统计一行文本的单词数
#include<stdio.h> int main(void) { char string[10000]; int i,num=0,word=0; char c; gets(string); for(i=0;(c=string[i])!='\0';i++) if(c==' ') word=0; else if(word==0){ word=1; num++; } printf("%d\n",num); return 0; }
设计思路
1、文字描述
(1)定义i,num,word;
(2)判断是否为‘ ’符号;
2、流程图
调试过程中的错误和解决办法
错误原因:for后面括号中要用“;”而不是“,”。
交换最小值和最大值
#include <stdio.h> main() { int n,i,a[10],c,d,min,max,j; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&a[i]); } min=max=a[0]; for(i=0;i<n;i++) { if(a[i]<=min) { min=a[i]; j=i; } } c=a[0]; a[0]=min; a[j]=c; for(i=0;i<n;i++) { if(a[i]>=max) { max=a[i]; j=i; } } d=max; a[j]=a[n-1]; a[n-1]=d; for(i=0;i<n;i++) printf("%d ",a[i]); }
设计思路
1、文字描述
(1)定义n,i,a[10],c,d,min,max,j;
(2)通过与第一个输入的值比较找出max,min;
(3)最小值与第一个数交换,然后将最大值与最后一个数交换;
2、流程图
调试过程中的错误和解决办法
错误分析:一维数组中第一个数的位置为a[0],所以程序中for判断的应该是i<n。
这周学习的内容:一维数组,二维数组;在初学时理解起来有点困难,但通过实际操作后慢慢能理解。