C 输出带空格字符的整数数组
我正在试着写一个c程序。它必须输入两个数组,并且输入应该是空间分隔的。我试图以某种方式消除“\n”C 输出带空格字符的整数数组,c,C,我正在试着写一个c程序。它必须输入两个数组,并且输入应该是空间分隔的。我试图以某种方式消除“\n” #include <stdio.h> int main() { char temp; int alc[3]={0}, bob[3]={0}, i=0; //enter alice do { scanf("%d%c", &alc[i], &temp); i++; } while
#include <stdio.h>
int main()
{
char temp;
int alc[3]={0}, bob[3]={0}, i=0;
//enter alice
do
{
scanf("%d%c", &alc[i], &temp);
i++;
} while(temp != '\n');
i=0;
//enter bob
do
{
scanf("%d%c", &bob[i], &temp);
i++;
} while(temp != '\n');
//print alice
for(i = 0; i < 3 ; i++)
{
printf("%d ", alc[i]);
}
//print bob
for(i = 0; i < 3 ; i++)
{
printf("%d ", bob[i]);
}
return 0;
}
还有更好的方法吗?这个想法是将行作为输入,然后使用
strtol
等解析它以获得整数。您将使用fgets
获得该行。然后将其存储在数组中。现在有两种选择
- 如果在数组中获得的元素超过了可以容纳的数量,那么当数组已满时,将显示错误
- 或者使用动态分配的内存,该内存将随着您输入的数量的增加而增加
我担心,在得到整数之前使用
scanf
是一种选择,但这不是一个好主意,而且scanf
也不是一种简单的方法。这个想法是将该行作为输入,然后使用strtol
等解析它以得到整数。使用fgets
可以得到该行。然后将其存储在数组中。现在有两种选择
- 如果在数组中获得的元素超过了可以容纳的数量,那么当数组已满时,将显示错误
- 或者使用动态分配的内存,该内存将随着您输入的数量的增加而增加
恐怕,在得到整数之前使用
scanf
是一种选择,但这不是一个好主意,而且scanf
不是一种简单的方法
#include <stdio.h> // scanf(), fprintf(), stderr, printf()
#include <stdlib.h> // exit(), EXIT_FAILURE
#define MAX_NUMS_PER_PERSON 3
int main( void )
{
int alice[ MAX_NUMS_PER_PERSON ]={0};
int bob[ MAX_NUMS_PER_PERSON ]={0};
//enter alice
for( int i=0; i< MAX_NUMS_PER_PERSON; i++ )
{
if( 1 != scanf("%d", &alice[i]) )
{
fprintf( stderr, "failed to input nums for Alice\n" );
exit( EXIT_FAILURE );
}
// implied else, scanf successful
}
//enter bob
for( int i=0; i< MAX_NUMS_PER_PERSON; i++ )
{
if( 1 != scanf("%d", &bob[i]) )
{
fprintf( stderr, "failed to input nums for Bob\n" );
exit( EXIT_FAILURE );
}
// implied else, scanf successful
}
//print alice
for( int i = 0; i < MAX_NUMS_PER_PERSON; i++)
{
printf("%d ", alice[i]);
}
//print bob
for( int i = 0; i < MAX_NUMS_PER_PERSON; i++)
{
printf("%d ", bob[i]);
}
return 0;
}
#include <stdio.h> // scanf(), fprintf(), stderr, printf()
#include <stdlib.h> // exit(), EXIT_FAILURE
#define MAX_NUMS_PER_PERSON 3
int main( void )
{
int alice[ MAX_NUMS_PER_PERSON ]={0};
int bob[ MAX_NUMS_PER_PERSON ]={0};
//enter alice
for( int i=0; i< MAX_NUMS_PER_PERSON; i++ )
{
if( 1 != scanf("%d", &alice[i]) )
{
fprintf( stderr, "failed to input nums for Alice\n" );
exit( EXIT_FAILURE );
}
// implied else, scanf successful
}
//enter bob
for( int i=0; i< MAX_NUMS_PER_PERSON; i++ )
{
if( 1 != scanf("%d", &bob[i]) )
{
fprintf( stderr, "failed to input nums for Bob\n" );
exit( EXIT_FAILURE );
}
// implied else, scanf successful
}
//print alice
for( int i = 0; i < MAX_NUMS_PER_PERSON; i++)
{
printf("%d ", alice[i]);
}
//print bob
for( int i = 0; i < MAX_NUMS_PER_PERSON; i++)
{
printf("%d ", bob[i]);
}
return 0;
}
#包括//scanf()、fprintf()、stderr、printf()
#包括//退出(),退出失败
#定义每个人的最大人数3
内部主(空)
{
int alice[MAX_NUMS_PERSON]={0};
int bob[MAX_NUMS_PERSON]={0};
//爱丽丝进来
对于(int i=0;i
以下建议的代码:
#include <stdio.h> // scanf(), fprintf(), stderr, printf()
#include <stdlib.h> // exit(), EXIT_FAILURE
#define MAX_NUMS_PER_PERSON 3
int main( void )
{
int alice[ MAX_NUMS_PER_PERSON ]={0};
int bob[ MAX_NUMS_PER_PERSON ]={0};
//enter alice
for( int i=0; i< MAX_NUMS_PER_PERSON; i++ )
{
if( 1 != scanf("%d", &alice[i]) )
{
fprintf( stderr, "failed to input nums for Alice\n" );
exit( EXIT_FAILURE );
}
// implied else, scanf successful
}
//enter bob
for( int i=0; i< MAX_NUMS_PER_PERSON; i++ )
{
if( 1 != scanf("%d", &bob[i]) )
{
fprintf( stderr, "failed to input nums for Bob\n" );
exit( EXIT_FAILURE );
}
// implied else, scanf successful
}
//print alice
for( int i = 0; i < MAX_NUMS_PER_PERSON; i++)
{
printf("%d ", alice[i]);
}
//print bob
for( int i = 0; i < MAX_NUMS_PER_PERSON; i++)
{
printf("%d ", bob[i]);
}
return 0;
}
#include <stdio.h> // scanf(), fprintf(), stderr, printf()
#include <stdlib.h> // exit(), EXIT_FAILURE
#define MAX_NUMS_PER_PERSON 3
int main( void )
{
int alice[ MAX_NUMS_PER_PERSON ]={0};
int bob[ MAX_NUMS_PER_PERSON ]={0};
//enter alice
for( int i=0; i< MAX_NUMS_PER_PERSON; i++ )
{
if( 1 != scanf("%d", &alice[i]) )
{
fprintf( stderr, "failed to input nums for Alice\n" );
exit( EXIT_FAILURE );
}
// implied else, scanf successful
}
//enter bob
for( int i=0; i< MAX_NUMS_PER_PERSON; i++ )
{
if( 1 != scanf("%d", &bob[i]) )
{
fprintf( stderr, "failed to input nums for Bob\n" );
exit( EXIT_FAILURE );
}
// implied else, scanf successful
}
//print alice
for( int i = 0; i < MAX_NUMS_PER_PERSON; i++)
{
printf("%d ", alice[i]);
}
//print bob
for( int i = 0; i < MAX_NUMS_PER_PERSON; i++)
{
printf("%d ", bob[i]);
}
return 0;
}
#包括//scanf()、fprintf()、stderr、printf()
#包括//退出(),退出失败
#定义每个人的最大人数3
内部主(空)
{
int alice[MAX_NUMS_PERSON]={0};
int bob[MAX_NUMS_PERSON]={0};
//爱丽丝进来
对于(int i=0;i
根据此答案更改了我的C程序
#包括
#包括
#定义数组大小3
#定义BOB_尺寸5
#定义ALICE_尺寸4
int main()
{
int-tmp,i=0;
字符跟随;
整数计数;
inta[ALICE_SIZE]={0},b[BOB_SIZE]={0};
if((ALICE_SIZE0)
{
if((计数=2&&isspace(follow))| |(计数=1))
{
a[i++]=tmp;
}
其他的
{
printf(“检测到错误字符:%c\n”,跟随);
打破
}
}
i=0;
而((i0)
{
if((计数=2&&isspace(follow))| |(计数=1))
{
b[i++]=tmp;
}
其他的
{
printf(“检测到错误字符:%c\n”,跟随);
打破
}
}
对于(i=0;i
使用scanf
看起来需要付出太多的努力,但要使其健壮,需要付出很多努力,并且