【程序18】 题目:求s = a + aa + aaa + aaaa + aa...a的值,其中a是一个数字。例如2 + 22 + 222 + 2222 + 22222(此时 共有5个数相加),几个数
2019-01-10 14:36
274 查看
初始版本
存在的问题:数组内存大小固定,无法动态改变
[code]#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> /* 【程序18】 题目:求s = a + aa + aaa + aaaa + aa...a的值,其中a是一个数字。例如2 + 22 + 222 + 2222 + 22222(此时 共有5个数相加),几个数相加有键盘控制 */ int main(void){ int all = 0, num = 0; int count = 0; int s = 0; int number[10] = { 0 }; printf("几个数相加?什么数?\n"); scanf("%d %d", &all, &num); for (count = 0; count < all; count++) { number[count] += num; s += number[count]; number[count + 1] = number[count] * 10; } number[all] = '\0'; for (count = 0; count < (all - 1); count++) { printf("%d + ",number[count]); } printf("%d = %d\n", number[count], s); return 0; }
修改后
分配空间函数
[code]int *get_number(int all){ int *temp_number = NULL; //分配空间 temp_number = (int *)malloc((all + 1) * sizeof(int)); if (temp_number == NULL) { fprintf(stderr, "temp_number malloc err\n"); return NULL; } //初始化 memset(temp_number, 0, (all + 1) * sizeof(int)); return temp_number; }
释放空间函数
[code]//释放分配空间 void free_number(int *number){ if (number == NULL) { return; } free(number); number = NULL; return; }
全部程序
[code]#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdlib.h> //给数组分配动态内存 int *get_number(int all){ int *temp_number = NULL; //分配空间 temp_number = (int *)malloc((all + 1) * sizeof(int)); if (temp_number == NULL) { fprintf(stderr, "temp_number malloc err\n"); return NULL; } //初始化 memset(temp_number, 0, (all + 1) * sizeof(int)); return temp_number; } //释放分配空间 void free_number(int *number){ if (number == NULL) { return; } free(number); number = NULL; return; } int main(void){ int all = 0, num = 0; int count = 0; int s = 0; int *number = NULL; printf("几个数相加?什么数?\n"); scanf("%d %d", &all, &num); number = get_number(all); for (count = 0; count < all; count++) { number[count] += num; s += number[count]; number[count + 1] = number[count] * 10; } number[all] = '\0'; for (count = 0; count < (all - 1); count++) { printf("%d + ", number[count]); } printf("%d = %d\n", number[count], s); free_number(number); return 0; }
相关文章推荐
- 【程序18】 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时 共有5个数相加),几个数相加有键盘控制
- 【程序8】 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。 例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
- C100-18 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时 共有5个数相加),几个数相加有键盘控制。
- 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
- 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如 2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制
- 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。 # 例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。
- 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
- 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加), 几个数相加有键盘控制。
- 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
- 求s=a+aa+aaa+aaaa+aaa....a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。
- 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
- 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制
- 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
- java:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
- 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
- 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
- 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
- #求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制
- 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加
- 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个1~9的数字。例如2+22+222+2222+22222(此时共有5个数相加)。