实现一个简单的问题:输入学生信息(只写姓名就行),要求用到动态内存分配(malloc)开辟存储空间,当输入人数超过8个人时,要求继续开辟动态内存空间,将之前输入的8个人放到新的空间内,超过8个人的部分按顺序在其后存入。依次类推,超过16个人、24个人等都如此,要求用到循环实现。最后要统计输入学生的个数。请大家帮忙码一下,不胜感激!
这个问题的思想比较像C++里面的vector容器
#include <stdio.h>噢!有思路了,待我再加入学生的性别年龄生日等完善下。谢了
是不是大概这个样子,realloc(p,n*N),其中N=8,n随你输入情况适时n++?
追答只要新申请的内存空间比之前的内存空间大就可以,
这里可以realloc( point , n*N*sizeof( struct student) ),保证n递增就可以
谢谢,太有帮助了!
C语言编程题,都是基础的,望达人解答。
1.main(){ int a,b;scanf("%d%d",&a,&b);printf("a+b=%d",a+b);} 2.main(){ int a,b;scanf("%d%d",&a,&b);if(a>b)printf("最小值是%d",b);if(a<b)printf("最小值是%d",a);if(a==b)printf("两个值相等");} 3.main(){ int a,b;scanf("%d%d",&a,&b)...
求c语言编程达人帮忙指点下
i < size; ++i) p[i] = student[i];
c语言编程,达人救我
int main(){ int n;while(scanf("%d",&n)!=EOF){ if(n>=0&&n<=86399)Dis(n);} return 0;}
关于C编程的问题 请各位达人帮忙 谢谢
第一个:include "stdio.h"main(){ int max=0,min=0,a[3],i;printf("Please input 3 numbers:\\n");for(i=0;i<3;i++){ scanf("%d",&a[i]);} max=a[0]>a[1]?a[0]:(a[1]>a[2]?a[1]:a[2]);min=a[0]<a[1]?a[0]:(a[1]...
求助C语言达人:编程输出100到200间能被7整除的整数,要求每行输出5个数...
先从100开始增1寻求第一个被7整除的数,然后从这个数开始增7逐一输出,直到大于200停止。另用一变量从0开始每输出一个数增1,能被5整时增加输出一个回车就能满足题目要求。代码如下:include "stdio.h"int main(int argc,char *argv[]){int i,t;for(i=100;i%7;i++);\/\/从100开始增1穷举...
C语言编程达人请进
,1,fp);sizeof(int)表示你写入的一块的大小,你用的是一个int大小。1表示你要写入的块的数目。显然在你机器上一个int是4个字节,而arr的类型是char *,一个char是1个字节,所以你写入4个字节大小的数据时就会写入四个字符。如果你要写入全部字符,改成 fwrite(&arr,sizeof(char),10,fp);...
悬赏,急。编程达人请进。帮帮忙解释一下这个C语言数据结构的函数的思...
1、定义新链表c,用于存放结果 2、取多项式a的头结点qa,qa->next为a的第一项。3、对b进行同样操作得到b第一项地址qb->next。4、a的每一项与b的每一项都做运算,两个多项式相乘的结果存入c while(qa->next != 0)\/\/遍历a { while(qb->next != 0)\/\/遍历b { 系数相乘 幂相加 存入c...
C语言的怎样编程啊?
编程的东西太多了,我就说scanf,printf吧。1.首先要应用这两个函数就要导入一个包所以要在前面加一个宏定义#include<stdio.h> 2.然后就是写一个main函数这是程序的入口void main(){} 3.要输入的话,首先的定义一个变量来存储你输入的东西。如int no;或char name[20];然后写一个输入函数,scanf...
这儿有一道C语言编程题,请达人帮忙看一下有什么错误。
n每步循环的开始,要把相关变量清0 for(n=3;n<=20;n++){ \/\/以下是将相关变量清0 i=j=flag=0;for(p=0;p<21;p++)for(q=0;q<21;q++)a[p][q]=0;for(curr=1;curr<=n*(n+1)\/2;curr++){
请编程达人用c语言编写一个程序输出魔方阵
int main(){ int a[N][N],i,j,k,p,m,n;p=1;while(p==1) \/*要求阶数为1~15的商数*\/ { printf("Enter n(n=1~15):"); \/\/可以输入小于等于N-1的整数 scanf("%d",&n);if((n!=0)&&(n<=N-1)&&(n%2!=0)) p=0;} for(i=1;i<=n;i++) \/*初始化*\/ for(j...