中易网

C语言怎么输入n个数据 然后进行处理

答案:4  悬赏:40  
解决时间 2021-03-10 05:27
刚刚学c 经常遇到这样的问题 请输入n个数据 然后排序 挑选啊之类的 我就不明白 这n个数据怎么输入 怎么控制它的长度 比如说 输入学生成绩 a班10个人 就输入10个 换做b班12个人 就要输入12个 怎么弄?
编写函数fun(int n),其功能是可以输入n个学生的成绩,统计出各个分数段的人数,返回值为这些人数的平均分
拿这个问题举例子
这个n 怎么控制 可能是5、6、7 、8 、9 、10000等 好多好多个学生 我特别头疼这种类型的题 求大神笼罩啊
最佳答案
你知道数组分配是固定的吧? 那你学过指针么.还有内存分配的命令不晓得你学过没.
如果是我 我写个给你看下.仅供参考

#include <stdio.h>
#include <malloc.h>

//数组排序
void _ArraySort(int * _arr,int len);

int main()
{
int len; //存放数组长度
int * arr; //指向新空间
int i;

len=0;
arr=NULL;
//初始化数据

do
{
printf("输入要排序的人数(len>0): ");
scanf("%d",&len);
}while(len<1);

arr=(int*)malloc(sizeof(int)*len); //分配 len * sizeof(int) 的大小 这就成了动态数组了

for(i=0;i<len;i++)
{
printf("第 %2d 个学生成绩: ",i+1);
scanf("%d",arr+i);
}

_ArraySort(arr,len); //排序

for(i=0;i<len;i++)
{
printf("编号: %2d 成绩: %3d\n",i+1,arr[i]);
}

free(arr); //释放内存
//因为申请了就要释放避免驻留虽然程序结束系统会自动回收但还是要养成申请用完就释放的好习惯
//Over
return 0;
}

//数组排序
void _ArraySort(int * _arr,int len)
{
int i,l,temp;

for(i=0;i<len;i++)
{
for(l=i+1;l<len;l++)
{
if(_arr[l]<_arr[i])
{
temp=_arr[l];
_arr[l]=_arr[i];
_arr[i]=temp;
}
}
}

return;
}

补充下 这是动态方式 也有固定 也就是一开始分配 1000个数据 这样数据够大吧?不过.这样会很浪费空间我好像还记得栈内存 2M最大 不清楚.反而堆还很大.至少是看剩余可用内存大小.
或者如果是C++ 就直接new (malloc)和 delete (free) 反正做法都差不多 而且我这个不是很好.或者用链表结构 输入多少就分配多少 而且是可以判断是否退出 而我这个是一开始要固定大小 后面如果输入时候想改变那就不行了.不过其实也可以看你怎么写了.
全部回答
int a[10]; int i; puts("enter 10 numbers"); for(i=0;i<10;i++) scanf("%d", &a[i]);
先读一个n 然后 再读 数据 scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",a[i]);
#include <stdio.h> #include <stdlib.h> int main() { int n ; printf("您要输入几个啊?:"); scanf("%d",&n); double* t = (double*)malloc( n*sizeof(double) ); for( int i=0;i<n; ++i ) { printf("请输入第%d个:",i+1); scanf("%lf",t+i); } while( n-- ) { printf("%lf ",*(t+n)); } free(t); } 您要输入几个啊?:5 请输入第1个:23 请输入第2个:4.5 请输入第3个:6.7 请输入第4个:-23.5 请输入第5个:9.7 9.700000 -23.500000 6.700000 4.500000 23.000000 请按任意键继续. . . 补充:我真的服了,你不知道把所有double都替换成int???
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
SeeYa的意思
下巴乱我想知道这个在什么地方
谁有耳根微信上最近发的那几张图片
依依不舍和流连忘返都含有留恋的意思对吗
怎么用c语言给贪吃蛇添加障碍物
梦见江水和船是什么意思
我家鱼缸长1米.高90.宽40...养什么样的热带鱼
初三学生闫某,因学习基础差产生厌学心理,顶
如何删除提出的问题。在手机百度知道上。
淘宝联盟里的好券清单里的商品优惠券怎么领
WWE什么时候更新啊??
辨析:逻辑证明是检验真理的标准之一?(严肃
纤维素分解菌的选择培养基中为什么加酵母膏
七塘小学地址在哪,我要去那里办事
翼支付2星怎么升3星
推荐资讯
大神们! 求鉴定adidas nizza
踏板车怎么样才可以判断排气管是否漏气
求SS上的游戏<大力士>的下载地址
有多少老妈妈他留在乡下是董文华那首歌歌词
win10升级中老是重启怎么办
高达seed里面那个面具男是谁啊
长春各个高中及其地址
pack.gz怎么转成jar
大学毕业后想考研,什么专业考研比较好。
业务之家旅馆我想知道这个在什么地方
烧瓦冲怎么去啊,有知道地址的么
合个影俄文怎么说
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?