main(){ int a[1024],n,i,j,t;n=-1;do { scanf("%d",&a[++n]);}while(a[n]>=0);n--;for(i=0;i<n;i++)for(j=0;j<n-i;j++)if(a[j]<a[j+1]){ t=a[j];a[j]=a[j+1];a[j+1]=t;} for(i=0;i<=n;i++)printf("%d ",a[i]);printf("\n");ge...
最符合你的要求的程序是使用排序二叉树来实现,代码如下,附件附上,望采纳~include <stdio.h> include <stdlib.h> define INIT_TREENODE(x) x->lchild = x->rchild = x->threadNext = x->threadPrev = NULL // 初始化叶子结点 typedef int ContentType; // 设定树结点内容类型为int ...
你可以这样,判断下一个是不是换行,如果是结束输入...例如:include <stdio.h>int main(){ double upnum[1000]; int i, n = 0; while (scanf("%lf", &upnum[n++]) != EOF) { if (getchar() == '\n') { for (i = 0; i < n; i++) printf("%.2lf ", upnu...
输入若干个数 说明 输入的数目是不确定的。所以 一定需要一个结束的标记 一般是使用EOF 举例:用c语言:输入10个数,要求输出其中最大的数 Code:include<stdio.h> include<math.h> int main(){ int i =0;int a[10];for(i = 0; i < 10; i++)scanf("%d",&a[i]);int max = a[0...
输入多组测试数据,判断输入结束的方式与题目要求有关。常见方式有:先输入测试组数,再读数据 int tn,n;scanf("%d", &tn);while( tn-- ) { scanf("%d", &tn);...} //按tn次数循环读数 不确定测试组数,以规定数据结束,如,-1或负数 while( scanf("%d", &n), n>=0 ) { //...
void main { int i;char *a[10];/*可以用来存储10组数据的首地址,如果是其他类型的话,定义时用其他类型说明替换char*/ for(i=0;i<10;i++){ printf("请输入一个字符串数据:");gets(a[i]);/*这样a[i]指向你输入的字符串首个字符的地址*/ } for(i=0;i<10;i++)puts(a[i])...
为了将未知数量的整数从键盘输入存储到数组中,可以采用动态分配内存的方法。这种方法能灵活处理不同数量的输入,而无需预先确定数组的大小。下面是一个示例代码:include int main() { int *a, i = 0, num;printf("请输入数据,中间用空格间隔,用回车结束输入:\n");a = (int *)malloc(1 *...
你可以自己写一个函数,初始化一个整型数组,然后每次数据量大于这个数组容量时,在扩容 伪代码如下:1.初始化一个10位的整型数组 int[],i=0,size=10 2.输入时判断i<=size int[i]=input 3.如果i>size 4.新建一个int[size+5]的数组,并将前面的数据copy到这个新数组中 5.重复步骤2 ...
宏泛型,典型如c标准库math.h中对不同宽度数值的处理,代码非常ugly,而且只能处理预定义的数据类型。_...
可以参考下面的代码:int main(){ int a[100],i=0,ch=0;printf("请输入一组整形数据(不超过100个):");do{ scanf("%d",&a[i++]);ch=getchar();}while(ch!='\n');for(ch=0;ch