[英]To create a program that divides two numbers at equal intervals
我做了程序的第一部分,但我不明白动态内存分配和使用指针计算的部分。 我应该编码什么? 节目内容。
我的源代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main ()
{
int num, i;
double dfirst, dlast;
double * x;
/ * Enter the first value, the last value, and the number to divide * /
printf ("Input first, last, total number of x []:");
scanf ("% lf% lf% d", & dfirst, & dlast, & num);
/ * Create after this * /
/ * Allocate memory * /
/ * Determine the value to store.
Be careful not to divide by an integer and decide the number of divisions in consideration of the end value * /
/ * Display results * /
/ * Post-processing * /
return 0;
}
执行结果想做什么
% ./a.out
Input first, last, total number of x[]: 0.0 2.0 5
Values of x
0.000 0.500 1.000 1.500 2.000
Values of x^2
0.000 0.250 1.000 2.250 4.000
% ./a.out
Input first, last, total number of x[]: 1.0 2.0 11
Values of x
1.000 1.100 1.200 1.300 1.400 1.500 1.600 1.700 1.800 1.900 2.000
Values of x^2
1.000 1.210 1.440 1.690 1.960 2.250 2.560 2.890 3.240 3.610 4.000
在 C 中,您使用函数malloc动态分配内存。 这个函数是相当低级的,程序员必须非常小心地指定所请求内存的正确大小。 为了使函数更易于使用,可以方便地定义一个也提供错误处理的宏:
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NEW_ARRAY(ptr, n) \
(ptr) = malloc((n) * sizeof (ptr)[0]); \
if ((ptr) == NULL) { \
fprintf(stderr, "Memory allocation failed: %s\n", strerror(errno)); \
exit(EXIT_FAILURE); \
}
宏功能到位后,您只需添加
NEW_ARRAY(x, num);
给你的程序分配一个由num 个元素组成的数组x 。 当您完成x 时,您可以使用free ( x ) 释放内存。 在您的程序中,您还需要检查scanf的结果以确保输入有效。 祝你好运!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.