本文共 4651 字,大约阅读时间需要 15 分钟。
本周作业内容较为丰富,涵盖了多个编程任务,包括字符串处理、自动售货机模拟以及指针相关的练习。以下是本周作业的详细内容和解答:
#includevoid delchar(char *str, char c) { int i, j; for (i = j = 0; str[i] != '\0'; i++) { if (str[i] != c) { str[j++] = str[i]; } } str[j] = '\0';}int main() { char c; char str[100]; int repeat, ri; void delchar(char *str, char c); scanf("%d", &repeat); getchar(); for (ri = 1; ri <= repeat; ri++) { gets(str); scanf("%c", &c); delchar(str, c); printf("result: "); puts(str); } return 0;}
void delchar(char *str, char c)的功能是删除字符串str中所有与c相同的字符。i和j,i遍历字符串,j记录新字符串的位置。当发现字符不等于c时,将其复制到新位置,最后将新字符串的终止符添加到j位置。delchar函数的参数类型和函数定义不匹配,及时修正后问题得到解决。1 1 2 2 5 5 10 10 -11 2 3 5 1 6 9 10 -1
Total:36yuan,change:19yuanTable-water:2;Milk:1;Beer:1;Oolong-Tea:1;Green-Tea:1
#includeint 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,0,0,0,0,0,0,0,0,0,0}; int c[100]; int i=1, k, sum = 0, money, SUM = 0, change, flag=0; scanf("%d",&money); while((money!=-1) && (money <= 10)) { sum += money; scanf("%d",&money); } scanf("%d",&c[i]); while(c[i]!=-1) { switch(c[i]) { case 1: case 2: case 3: SUM += 1; break; case 4: case 5: SUM += 2; break; case 6: case 7: case 8: SUM += 3; break; case 9: case 10: SUM +=4; break; default: break; } if(SUM > sum) { printf("Insufficient money"); flag = 1; break; } i++; scanf("%d",&c[i]); } change = sum - SUM; 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(flag==0) { printf("Total:%dyuan,change:%dyuan\n",sum, change); for(i=1; i<=10; i++) { if(b[i]==0) continue; else { printf("%s:%d;",a[i-1],b[i]); } } } return 0;}
c的大小,发现定义为c[100],修改后问题解决。#includevoid delchar(char *str, char c) { int i, j; for (i = j = 0; str[i] != '\0'; i++) { if (str[i] != c) { str[j++] = str[i]; } } str[j] = '\0';}int main() { char c; char str[100]; int repeat, ri; void delchar(char *str, char c); scanf("%d", &repeat); getchar(); for (ri = 1; ri <= repeat; ri++) { gets(str); scanf("%c", &c); delchar(str, c); printf("result: "); puts(str); } return 0;}
void delchar(char *str, char c)的功能是删除字符串str中所有与c相同的字符。i和j,i遍历字符串,j记录新字符串的位置。当发现字符不等于c时,将其复制到新位置,最后将新字符串的终止符添加到j位置。delchar函数的参数类型和函数定义不匹配,及时修正后问题得到解决。| 周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 过程中的困惑点 |
|---|---|---|---|---|
| 3/1-3/8 | 30h | 142 | 定义文件,文件读写及导入(出) | 流程图不会画 |
| 3/9-3/15 | 25h | 152 | 自学 | 暂无 |
| 3/16-3/22 | 14h | 63 | 一、二维数组数据的处理和输出 | 不能读懂复杂代码 |
| 3/23-3/29 | 34h | 188 | 头文件string.h、字符串 | 不懂string.h的含义 |
| 3/30-4/5 | 21h | 143 | 指针及其定义,指针实现函数调用返回多个值 | 指针的内存与什么有关 |
| 4/6-4/13 | 26h | 164 | 指针、数组、地址之间的关系,以及改变主调函数的值 | 改变主调函数的值如何实现 |
C语言这门课程越来越难了,有些时候我甚至都读不懂题目了。我一定要更加努力学习这门课程。挑战作业难度太大,我完全看不懂。
结对编程比自己一个人编程拥有更多动力与乐趣,我们可以相互督促对方,开拓自己的视野,并且取长补短。但是我和队友都比较菜,这样有些难受。
版权所有 © 2019 yuyuetech All Rights Reserved。转载于: https://www.cnblogs.com/ITSkystudio/p/10698754.html