C语言怎样输入两行数,存入两个数组中?

例如
6 7 8 9 10 (输入第一个数组元素)
1 2 3 4 5(输入第二个数组元素)
每个数中间空一格 谢谢啦

实现方法:

    自定义按行读入数组的函数 int reada( int *a, int max)

      先读一个数到数组

      再读一个字符,

      判断是否回车符,是则结束读入,否则,下一步

      判断读到的个数是否达到max,达到则结束读入,否则循环到a

      循环结束后,清除缓存中的数据

      返回读到的整数个数

    定义两个数组

    调用该函数reada去分别读取两个数组

参考代码:

#include <stdio.h>
int reada( int *a, int max )
{
char ch=0;
int i;
for( i=0;i<max;i++ )
{
scanf("%d", &a[i]);
ch=getchar();
if( ch=='\n'){
i++;
break ;
}
}
while(ch!='\n')ch=getchar();
return i;
}
void main()
{
int a[5],b[5];
int m,n ,i;
m=reada(a,5);
n=reada(b,5);
for( i=0;i<m;i++ )
printf("%d ", a[i] );
printf("\n");
for( i=0;i<n;i++ )
printf("%d ", b[i] );
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-16
#include<stdio.h>
void main()
{ int a[5],b[5],i;
for ( i=0;i<5;i++ ) scanf("%d",&a[i]);
for ( i=0;i<5;i++ ) scanf("%d",&b[i]);
printf("A数组:“); for ( i=0;i<5;i++ ) printf("%d ",a[i]); printf("\n");
printf("B数组:“); for ( i=0;i<5;i++ ) printf("%d ",b[i]); printf("\n");
}
第2个回答  推荐于2017-10-10
#include<stdio.h>
int main()
{
int i=0,b[10],c[10];
char ch;
while(scanf("%d",&b[i]))
{
ch=getchar();
i++;
if(ch=='\n')
break;
}
i=0;
while(scanf("%d",&c[i]))
{
ch=getchar();
i++;
if(ch=='\n')
break;
}
return 0;
}本回答被提问者采纳
第3个回答  2014-04-15
基本的输入我就不说了
判断的时候你判断下一个字符是不是换行符就行了
例如
while(getchar()!='\n')追问

不太明白 我是这样写
int a[5],b[5],i,j;
char char1[4],char2[4];
for(i=0;i<=4;i++) scanf("%d ",&a[i]);
for(j=0;j<=4;j++) scanf("%d ",&a[i]);
这样错哪了?然后怎么改才对?

追答

for(i=0;i<4;i++)//数组最大下标为3,因为是从0开始的
scanf("%d ",&a[i]);
for(j=0;j<4;j++)
scanf("%d ",&b[j]);
//scanf("%d ",&a[i]);//这里你是想输入到a还是b,还有,数组下标应该为j

第4个回答  2014-04-15

char line[50];

int array1[5];

int array2[5];

fgets(line,50,stdin);

sscanf(line,"%d%d%d%d%d%d",&array1[0],&array1[1],&array1[3],&array1[4],&array1[5]);

fgets(line,50,stdin);

sscanf(line,"%d%d%d%d%d%d",&array2[0],&array2[1],&array2[3],&array2[4],&array2[5]);


相似回答