C语言中如何给一个数组输入一组总数未知的数
答案:2 悬赏:40
解决时间 2021-03-09 23:47
- 提问者网友:锁深秋
- 2021-03-08 23:56
C语言中如何给一个数组输入一组总数未知的数
最佳答案
- 二级知识专家网友:一叶十三刺
- 2021-03-09 01:15
首先要先定义一个足够大的数组,然后利用scanf的返回值来确定输入结束。
scanf的返回值是实际输入数值的个数。
比如输入整型数值时,scanf("%d",&a);如果输入a成功,那么返回值会是1。
按照这个思路,可以编写输入整型数组的代码如下:
#include
#define MAX_INPUT 100 //假定最大可以输入100个数
int input(int *a)//a为要输入的数组,返回值为实际输入个数。
{
int i;
for(i = 0; i < MAX_INPUT; i ++)
if(scanf("%d",&a[i])!=1) break;//输入并判断
return i;//返回输入总数
}
int main()
{
int a[MAX_INPUT];
int n,i;
n = input(a);
printf("共计输入%d个数值
", n);
for(i = 0; i < n; i ++)//输出之前输入的数值以验证。
printf("%d
", a[i]);
return 0;
}除此之外,还有一种比较常见的应用是约定了数据规模,然后约定某一个不在其规模内的数值,作为输入结束标志。
比如输入若干个整型的分数值,作为分数值一定是非负整数,所以可以约定当输入-1时结束。
这类代码可以编写为:
#include
#define MAX_INPUT 100 //假定最大可以输入100个数
int input(int *a)//a为要输入的数组,返回值为实际输入个数。
{
int i;
for(i = 0; i < MAX_INPUT; i ++)
{
scanf("%d",&a[i]);
if(a[i] == -1) break;//当检测到输入结束标志时结束输入。
}
return i;//返回输入总数
}
int main()
{
int a[MAX_INPUT];
int n,i;
n = input(a);
printf("共计输入%d个数值
", n);
for(i = 0; i < n; i ++)//输出之前输入的数值以验证。
printf("%d
", a[i]);
return 0;
}
scanf的返回值是实际输入数值的个数。
比如输入整型数值时,scanf("%d",&a);如果输入a成功,那么返回值会是1。
按照这个思路,可以编写输入整型数组的代码如下:
#include
#define MAX_INPUT 100 //假定最大可以输入100个数
int input(int *a)//a为要输入的数组,返回值为实际输入个数。
{
int i;
for(i = 0; i < MAX_INPUT; i ++)
if(scanf("%d",&a[i])!=1) break;//输入并判断
return i;//返回输入总数
}
int main()
{
int a[MAX_INPUT];
int n,i;
n = input(a);
printf("共计输入%d个数值
", n);
for(i = 0; i < n; i ++)//输出之前输入的数值以验证。
printf("%d
", a[i]);
return 0;
}除此之外,还有一种比较常见的应用是约定了数据规模,然后约定某一个不在其规模内的数值,作为输入结束标志。
比如输入若干个整型的分数值,作为分数值一定是非负整数,所以可以约定当输入-1时结束。
这类代码可以编写为:
#include
#define MAX_INPUT 100 //假定最大可以输入100个数
int input(int *a)//a为要输入的数组,返回值为实际输入个数。
{
int i;
for(i = 0; i < MAX_INPUT; i ++)
{
scanf("%d",&a[i]);
if(a[i] == -1) break;//当检测到输入结束标志时结束输入。
}
return i;//返回输入总数
}
int main()
{
int a[MAX_INPUT];
int n,i;
n = input(a);
printf("共计输入%d个数值
", n);
for(i = 0; i < n; i ++)//输出之前输入的数值以验证。
printf("%d
", a[i]);
return 0;
}
全部回答
- 1楼网友:夜风逐马
- 2021-03-09 02:11
我暂时保留我的看法!
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯