zoukankan      html  css  js  c++  java
  • 第5周编程总结

    这个作业属于哪个课程 C语言程序设计Ⅱ
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering-class2-2018/homework/2824
    我在这个课程的目标是 字符串数组排序,运用数组;二维数组
    这个作业在哪个具体方面帮助我实现目标 英文单词的排序,学习新的语句
    参考文献 C语言程序设计

    结对队友:一班的刘超君
    结对感想:
    可以相互交流和讨论,交换思路,也会出现小争论,然后去问更强的人,看看到底谁错了.

    统计一行文本的单词个数

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

    输入格式:

    输入给出一行字符。

    输出格式:

    在一行中输出单词个数。

    输入样例:

    Let's go to room 209.
    

    输出样例:

    5
    

    实验代码

    #include <stdio.h>
    int main()
    {
    int i=0,n;
    char str[1000];
    gets(str);
    while (str[i]==' ') i++;
    while (str[i]!='')  
    {
    	if (str[i]!=' ')
    	{
    	n++;
    	while(str[i]!=' ')
    	 {
    	 	if(str[i]=='')  break;
    		 i++; 
    	 }
        }
        else 
    	  {
        	while(str[i]==' ')  i++;
    	  } 
    }
    printf("%d
    ",n);
    	 
    }
    
    

    流程图

    错误截图

    正确截图

    解决方法

    在过程里面总会出现问题,然后像室友请求帮助,发现循环里面忽略了不满足条件跳出的情况,数组开始以为80个字符就可以解决,然后把数组定义为1000.

    英文单词排序

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

    输入格式:

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

    输出格式:

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

    blue
    red
    yellow
    green
    purple
    #
    

    输出样例:

    red blue green yellow purple   
    

    实验代码

    #include<stdio.h>
    #include<string.h>
    int main(void){
    char a[20][10] = { '' };
    char b[10] = { '' };
    int i = 0;
    while (1) {	
    scanf("%s", a[i]);
    if (a[i][0] == '#')	
    break;
    i++;
     }
     a[i][0] = '';
    int n = i;
     int j = 0;
    for (i = 0; i < n; i++)	{
     for (j = 1; j < n - i; j++){
     if (strlen(a[j - 1]) > strlen(a[j]))	{
     strcpy(b, a[j - 1]);			
     strcpy(a[j - 1], a[j]);	
     strcpy(a[j], b);
    }
     }
    }
     for (i = 0; i < n; i++)	
     printf("%s ", a[i]); 
     return 0;
     }
    

    错误截图

    动脚趾头都知道不会写,但是去百度上搜了很多,还是看懂了一些,还用了俩个没看到过的语句

    正确截图

    解题思路

    if判断是否结束,再用for循环来排序

    流程图

    解决方法;没有百度就没有代码

    strlen 是一个函数,它用来计算指定字符串 str 的长度这是C语言里面复制字符串的库函数, 函数声明包括在专门处理字符串的头文件<string.h>中,
    例把c复制到a中就可以这样用:strcpy(a,c):
    strlen 是一个函数,它用来计算指定字符串 str 的长度
    文件

    
    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    int main(){    
    FILE *fp;
    char a[20][10],b[10];    
    int i,j,k=0,n=1,m=0;  
    if((fp = fopen ("D:\chenyuan.txt","r+")) == NULL) {
            printf ("File open error!
    ");
    		exit (0);     
        }
    for(i=0;i<20;i++)  {   
    scanf("%s",a[i]);    
    fscanf (fp,"%s",&a[i]);
    for(j=0;j<10;j++)    
    {    
     if(a[i][j]=='%')     
    {      n=0;  
    } 
    } 
    if(n==0)                 
    break; 
    else m++;                  
    }       
    fprintf(fp,"
    ");
    for(i=0;i<m;i++)   
    {   for(j=0;j<m-i-1;j++)    
    {   if(strlen(a[j])>strlen(a[j+1]))  
    {   strcpy(b,a[j]);   
    strcpy(a[j],a[j+1]);   
    strcpy(a[j+1],b);       
    }    }   }   
    for(i=0;i<m;i++)    
    fprintf(fp,"%s ",a[i]);  
        if(fclose (fp) ){
               printf ("Can not close the file!
    ");
               exit (0);
          
            }
    
    return 0;        
    } 
    
    

    学习总结

    预习作业

    2-1

    下列语句定义 x 为指向 int 类型变量 a 的指针,正确的是(A)。 (2分)
    

    A int a, *x = a;
    B int a, *x = &a;
    C int *x = &a, a;
    D int a, x = a;
    作者: 张泳
    单位: 浙江大学城市学院
    2-2

    int *p  的含义是 (2分) (B)
    

    A p是一个指针, 用来存放一个整型数
    B p是一个指针, 用来存放一个整型数据在内存中的地址
    C p是一个整型变量
    D 以上都不对
    作者: 李廷元
    单位: 中国民用航空飞行学院

    2-3

    如果有定义:int m, n = 5, *p = &m;``` 与m = n 等价的语句是 (A) 。 (1分)
    

    A m = *p;
    B *p = *&n;
    C m = &n;
    D m = **p;
    作者: 张泳
    单位: 浙江大学城市学院
    2-4

    变量的指针,其含义是指该变量的(B )。 (1分)
    

    A 值
    B 地址
    C 名
    D 一个标志
    作者: 张泳
    单位: 浙江大学城市学院
    2-5

    有如下程序段:int *p,a=10,b=1;p=&a; a=*p + b;
    

    执行该程序段后,a的值是 (2分) (B)
    A 12
    B 11
    C 10
    D 编译出错
    作者: 李廷元
    单位: 中国民用航空飞行学院
    2-6

    对于下列程序,正确的是(A) 。 (2分)
    void f(int *p)
    {
          *p = 5;
    }
    int main(void)
    {
          int a, *p;
    
          a = 10;
          p = &a;
          f(p);
          printf(“%d”, (*p)++);
    
          return 0;
    }
    

    A 5
    B 6
    C 10
    D 11

    作者: 张泳
    单位: 浙江大学城市学院
    2-7

    执行如下程序段,打印输出的内容是: (2分)  (D)
    #include <stdio.h>
    void fun (int c, int *d) {
        c++;
        (*d)++;
    }
    int main ( ){
        int a=5, b=9;
        fun(a, &b);
        printf("%d, %d", a, b);
        return 0;
    }
    A  5, 9
    B  6, 10
    C  5, 10
    D  6, 9
    
  • 相关阅读:
    青蛙学Linux—MySQL常用命令(二)
    青蛙学Linux—MySQL常用命令(一)
    青蛙学Linux—MySQL安装和初始化
    青蛙学Linux—MySQL
    青蛙学Linux—Apache提供HTTPS服务
    青蛙学Linux—Apache配置PHP支持
    青蛙学Linux—Apache+Tomcat实现动静分离以及负载均衡
    青蛙学Linux—Apache负载均衡的实现
    青蛙学Linux—Apache反向代理的实现
    青蛙学Linux—Apache的MPM模式和httpd-mpm.conf
  • 原文地址:https://www.cnblogs.com/I-FEAR-ONLY-TIME/p/10615363.html
Copyright © 2011-2022 走看看