C 我正试图开发一个程序,将我的消息(字符串)安排在一个x*宽度的矩阵中
例如(如果宽度=5) 这是一个C程序。 这个和“”应该在第1行,其余的将转到下一行,依此类推C 我正试图开发一个程序,将我的消息(字符串)安排在一个x*宽度的矩阵中,c,arrays,C,Arrays,例如(如果宽度=5) 这是一个C程序。 这个和“”应该在第1行,其余的将转到下一行,依此类推 #include<stdio.h> int main(void) { int width; int i; char message[256]; scanf("%d",&width); scanf(" %s",&message); for( i = 1; i <= width; i++ ) { i
#include<stdio.h>
int main(void)
{
int width;
int i;
char message[256];
scanf("%d",&width);
scanf(" %s",&message);
for( i = 1; i <= width; i++ )
{
if( i == width )
{
printf( "\n" );
}
else
{
printf( "%s", message );
i == width;
}
}
printf( "\n" );
return 0;
}
#包括
内部主(空)
{
整数宽度;
int i;
字符消息[256];
扫描频率(“%d”和宽度);
scanf(“%s”和消息);
对于(i=1;i使用scanf
输入包含空格的字符串是一种晦涩且过于复杂的操作,因为它通常使用空格作为字符串分隔符-您将只获得“消息”的第一个单词
您需要迭代字符串的长度而不是“矩阵”的宽度,否则它将在一行之后停止。您只需每隔width
个字符插入一个新行
循环的主体也没有什么意义,因为您只需打印消息(多次),而不管其长度如何
#include <stdio.h>
int main(void)
{
int width = 0 ;
int i = 0 ;
char message[256] = "" ;
scanf( "%d", &width );
fgets( message, sizeof(message), stdin ) ;
while( message[i] != '\0' )
{
putchar( message[i] ) ;
i++ ;
if( i % width == 0 )
{
putchar( '\n' ) ;
}
}
putchar( '\n' ) ;
}
#包括
内部主(空)
{
整数宽度=0;
int i=0;
字符消息[256]=“”;
扫描频率(“%d”和宽度);
fgets(消息、sizeof(消息)、stdin);
while(消息[i]!='\0')
{
putchar(信息[i]);
i++;
如果(i%宽度==0)
{
putchar('\n');
}
}
putchar('\n');
}
在大多数情况下,用户输入的一些有效性检查是有序的。问题是什么?不清楚您试图做什么或问题是什么,但通常for
循环将从0
开始,就像for(i=0;i在矩阵中排列意味着存储在矩阵数据结构中;您只需尝试在指定宽度的网格中显示它。家庭作业?第二个i==width;
是一个条件测试,其结果您不使用。即使您打算i=width;
也会强制for
循环结束,所以我想知道是什么原因“是的,回路根本就在那里。@风向标:固定。