本文很适合大一学习c语言下半学期学习阶段使用;
首先,附上原题:
标题
等差数列
类别
数组
时间限制
2S
内存限制
1000Kb
问题描述
请写一个程序,判断给定整数序列能否构成一个等差数列。
输入说明
输入数据由两行构成,第一行只有一个整数n(n<100),表示序列长度(该序列中整数的个数);
第二行为n个整数,每个整数的取值区间都为[-32768~32767],整数之间以空格间隔。
输出说明
对输入数据进行判断,不能构成等差数列输出“no”,能构成等差数列输出表示数列公差(相邻两项的差)的绝对值的一个整数。
输入样例
样例1输入
6
23 15 4 18 35 11
样例2输入
5
2 6 8 4 10
输出样例
样例1输出
no
样例2输出
2
下面附上我的程序:
#include#include #include int main(){ int *p; int m,i,j,tank; int jud=0; scanf("%d",&m); getchar(); p=(int*)malloc(sizeof(int)*m); for(i=0;i p[j]){ tank=p[j]; p[j]=p[j+1]; p[j+1]=tank; } for(i=0;i #inlcude<敲黑板.h>哈哈哈
知识点1:动态数组,利用malloc实现内存的动态分配。
使用malloc,需加上头文件#include
; 其使用格式是
指针本体=(数据类型*)malloc(sizeof(数据类型)*数组长度)
我觉得这个绝对是适合初学者看懂的“简谱”;
这样的话,就可以根据数组长度,灵活的分配内存啦!
知识点2:free;
umm,简单来讲,就是使用对哪个指针使用了malloc,就一定要在最后用上free(指针本体);
对,就是这样!
知识点3:
我在第一次写此程序时,出现了一些小事故,就是数组输不进去,调试出现了错误提醒,并弹出了内存的页面,后来发现,是输入时忘记写&取地址符号,其实挺容易错的,大家注意鸭!
谢谢各位了,多多包容哈!



