C语言数组问题 如何使数组变量数从键盘输入
严格意义上讲,c语言里面定义数组时其长度不能为变量,必须为固定值,因为c语言程序在定义数组时,必须先给数组开辟一个内存空间。不过,你所提的要求还是可以实现的,一般的做法是,可以先假设一个较大的数(不超过你所想输入的输入的数组长度的最大值MXLENGTH,)作为初始定义时数组大小,然后在输入数组时,在程序中设置判断语句,判断已输入长度是否到达用户所要输入的长度,若已到达则结束输入。
#include
#define MAXLENGTH 1000
void main()
{
int A[MAXLENGTH];
int i,n;
printf("please input the length of array:
");
scanf("%d",&n);
printf("input the array:
");
for(i=0;i<=n-1;i++)
scanf("%d",&A[i]);
printf("now the array is below:
");
for(i=0;i<=n-1;i++)
printf("%d ",A[i]);
}
根据提示先输入所要输入数组大小,回车之后依次输入数组各元素值,以空格作为数组元素间间隔,不要超过你刚才输入的长度,不然会报错。如果所用软件是visual c++,可以给为中文提示输入!
1、定义所需变量, 数组a的大小必需事先估计,可以取较大的值,这里取20:
int m, n, i, j;
int a[20][20];
2、先输入m和n,用scanf函数,代码如下:
printf("请输入m和n(m < 20, n < 20):");
scanf("%d%d", &m, &n);
3、再输入数组,使用for循环,因为n是最大行数,所以先n放在外循环:
for(i = 0; i < n ; i ++)
{
for(j = 0; j < m ; j ++)
{
printf("请输入第%d行%d列的元素: ", i + 1, j + 1);
scanf("%d", &a[i][j]);
}
}
去掉引号
scanf("%d",&N);
return (N);
用大括号括起来。
a[i]=a[N-i];多写一个
a[N-i]=x;//x没有值
杭饰艾和: 严格意义上讲,c语言里面定义数组时其长度不能为变量,必须为固定值,因为c语言程序在定义数组时,必须先给数组开辟一个内存空间.不过,你所提的要求还是可以实现的,一般的做法是,可以先假设一个较大的数(不超过你所想输入的输...
开县17057658638: C语言中数组长度用变量n定义,组元素为1到n,令n=1,2,3,分别输出每次的数组,求代码 - ?
杭饰艾和: #include <stdio.h> #include <stdlib.h>int main() {int n, i;// 声明整型数组指针变量int *array;printf("input n: ");scanf("%d", &n);// 创建长度为n的数组array = (int *)malloc(n * sizeof(int));// 赋值并输出for(i = 0; i < n; i++){array[i] = i + 1;printf("%d ", array[i]);}printf("\n");return 0; }
开县17057658638: c语言数组如何实现从键盘上输入数组的个数 - ?
杭饰艾和: int a[100],i,b; //[] 里填一个较大的数就行 scanf("%d",&n); //填入你想要的数组个数 for(i=0;iscanf("%d",&a[i]);
开县17057658638: c程序语言,数 组,求编程实现1.编程实现:对任意一个一维数组,从中找出数组元素的最大值和最小值.要求:(1)数组为整型数组(10个元素).(2)使... - ?
杭饰艾和:[答案] 第一题: 考虑到第四小问 程序用宏定义 #include #define N 10 //定义数组元素个数 void fun(int a[ ]) { int max=0,min=0; for(i=0;i{ if(a[i]>a[max]) { max=i; } if(a[i]{ min=i; } } printf("数组中第%d个数%d是最大值.\n",max+1,a[max]); printf("数组中第%d...
开县17057658638: c语言编程,一维数组,从数组中找数 - ?
杭饰艾和: #include <stdio.h> #define N 10 int main() {int arr[N];int n;int i;int flag;for (i = 0; i < N; i++){printf("请输入第%d个元素", i + 1);scanf("%d", &arr[i]);} while (1){flag = 0;printf("请输入要查找的n的值:");scanf("%d", &n); ...
开县17057658638: C语言 如何定义数组形式的变量 - ?
杭饰艾和: 数组在C语言里很常见的 如: int number[10]; int number[10][10]; 定义加初始化如: int number[10]={x,...,x}; int number[10][10]={{x,...,x},{x,...x},...,{x,...,x}}; x为数据[10]内为数组长度,一维数组在定义时初始化时可省略数组长度 引用时直接使用number[n]即可
开县17057658638: C语言, 输入一个数组使数组中最大的数放在最后 最小的数放在前面 其他数排列不变??? - ?
杭饰艾和: 你这题难度很大啊,搞了几个小时,终于搞出来了,多加点辛苦分可以吗源程序如下:#include <stdio.h> //将数组中最小数放在最前,最大数放在最后 void PartSort(int *num,int length) {int i;int min,max;int temp; //找到最大和最小的数的索引...
开县17057658638: C语言:定义100个变量(用数组的方法),在数组中分别输入3,6,9,12,15,……,100个数,输出1:从大到小输出这 - ?
杭饰艾和: #include<stdio.h> void main() { int x[100],i,n;x[0]=3;for ( i=1;i<100;i++ ) x[i]=x[i-1]+3; //每个数是前一个数加3for ( i=0;i<100;i++ ) printf("%d ",x[99-i]);printf("\n");for ( i=0;i<100;i++ ) if ( x[i]%5==0 ) printf("%d ",x[i]);printf("\n"); }
开县17057658638: c语言 怎样用scanf输入数组变量? - ?
杭饰艾和: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15#include<stdio.h> voidmain() {inta[10], i;// 输入10个数,放入数组for(i=0; i<10; i++){scanf("%d", &a[i]);}// 输出for(i=0;i<10;i++){printf("%d\n", a[i]);} } 用循环语句实现
开县17057658638: c语言怎么实现从一个数组中随机抽取一个元素? - ?
杭饰艾和: 随机产生一个数,然后每次将数组元素的最后一个数与这个数交换,并且数组的长度减1. int [] b = new int[100];int t = 0, idx = 0, len = a.length; for(int i=0;i<len;i++) { idx = [rand()*(len-i)]; b[i] = a[idx];t = a[idx]; a[idx] = a[len - 1]; a[len - 1] = t; } return ...