第七周

这个作业属于哪个课程 C语言程序设计2
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering-class2-2018/homework/2935
我的课程目标 运用指针·调用函数和删除字符
这个作业在哪个具体方面帮助我实现目标 用函数解决问题
参考文献 https://zhidao.baidu.com/question/130073455.html

第一题

6-2 每个单词的最后一个字母改成大写 (10 分)

代码

void fun( char *p )
{
  int i;
  for(i=0;p[i]!='';i++)
  {
    if(p[i+1]==' ')      
    p[i]=p[i]-32;  
  }
}

思路


问题

第二题

7-2 自动售货机 (30 分)

代码

#include<stdio.h>
int main(void)
{
  char a[10][20] = {"Table-water","Table-water","Table-water","Coca-Cola","Milk","Beer","Orange-Juice","Sprite","Oolong-Tea","Green-Tea"};
  int b[11] = {0};
  int c[100];
  int i=1, k,sum=0,money,amount=0,change;
  
  scanf("%d",&money);
  for(;money!=-1;)
  {
    sum = sum + money;
    scanf("%d",&money);
  }
  
  scanf("%d",&c[i]);
  for(;c[i]!=-1;)
  {
    switch(c[i])
    {
      case 1: case 2: case 3:amount=amount+1;break;
      case 4: case 5: amount=amount+2;break;
      case 6: case 7: case 8: amount=amount+3;break;
      case 9: case 10: amount=amount+4;break;
      default:break;
    }
    i++;
    scanf("%d",&c[i]);
  }
  change = sum-amount;
  i = 1;
  while(c[i]!=-1)
  {
    switch(c[i])
    {
      case 1: b[1]++;break;
      case 2: b[2]++;break;
      case 3: b[3]++;break;
      case 4: b[4]++;break;
      case 5: b[5]++;break;
      case 6: b[6]++;break;
      case 7: b[7]++;break;
      case 8: b[8]++;break;
      case 9: b[9]++;break;
      case 10: b[10]++;break;
      default:break;
    }
    i++;
  }
    if(amount>sum)
      printf("Insufficient money");
  if(amount<sum)
  {
    printf("Total:%dyuan,change:%dyuan
",sum, change);
    for(i=1; i<=10; i++)
    {
      if(b[i]==0)
        continue;
      else
      {
        printf("%s:%d;",a[i-1],b[i]);
      }
    }
  }
  
  return 0;
}

思路



开始我想调用函数,可写了一半不会写了,之后我问了别人,手可一用swith函数写,

但我的问题来了怎么数出东西和数量呢,之后我明白了要用三个数组来写

第三题

7-1 使用函数删除字符串中的字符 (10 分)

代码

#include<stdio.h>
void delchar(char *str, char c)
{
    int p,l=0;
    for(p=0;str[p]!='';p++){
        if(str[p]!=c){
            str[l]=str[p];
            l++;
        }
    }
    str[l]='';
}
int main(void)
{
    int repeat,i;
    char str[100],c;
    scanf("%d
",&repeat);
    for(i=1;i<=repeat;i++){
        gets(str);
        c=getchar();
        delchar(str,c);
        printf("result: %s
",str);
    }
    return 0;
}

思路

问题

此题我不会写,是看着别人的写出来的,我想知道的是为神么要用getchar这个

原来是为消除输入回车键带来的影响,保护字符串

周/日期 这周所花时间 代码行数 学到知识点 目前比较迷惑的问题
4/8-4/12 一整天 101 指针和函数 指针的运用和函数的调用

5学习感悟

这次的作业好难的,因此我知道自己还缺乏对其他函数的认识

六、结对编程感想

在一写问题上也可以互相讨论,代码可能会相似

原文地址:https://www.cnblogs.com/huangxing123/p/10697965.html