因此,由于某种原因,我的程序不会运行。它用于在列中创建有对齐的文本。只有1行文本在列的大小下。只需要帮助它崩溃的问题,所以我可以解决它是否有任何其他问题。我对字母组合仍然有点新,所以提示赞赏。提前感谢您的所有时间和帮助。
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
int col, textlen, space, i, j, letters, spaces;
char text[100];
bool ok;
int main()
{
// Setting varibles.
col = 0;
textlen = 0;
space = 0;
i = 0;
letters = 0;
spaces = 0;
ok = false;
// Prompt and validation.
while (ok = false)
{
printf("Enter the width of the column: ");
scanf("%d", &col);
printf("\n");
printf("Enter a line of text: ");
gets(text);
textlen = strlen(text);
if (col > textlen)
{
ok = true;
}
else
{
printf("Your text is too long for this column please try again.");
}
}
// Working out the space left.
for (i = 0; i = strlen(text); i++)
{
if (text[i] != ' ')
{
letters++;
}
if (text[i] == ' ')
{
spaces++;
}
}
space = (col - letters) / spaces;
// Writing the final product.
i = 0;
while (text[i] != '\0')
{
while ((text[i] != ' ') || (text[i] != '\0'))
{
printf("%c", text[i]);
}
if (text[i] == ' ')
{
for (j = space; j > 0; j--)
{
printf(" ");
}
}
else
{
break;
}
}
}
答案 0 :(得分:1)
替换
while(ok=false)
与
while(ok==false)
应该是一个开始
答案 1 :(得分:1)
while(ok=false){
应该是
while(ok==false){
(第一个是作业,第二个是考试)。
并且
for(i=0;i=strlen(text);i++){
应该是
for(i=0;i<strlen(text);i++){
答案 2 :(得分:-2)
你有一个SIGPFE(算术异常行34)
这是因为除以0,因为空格= 0
您的条件也是&#39; =&#39;而不是&#39; ==&#39;这是一个错误
你有时会忘记增加我......
这是你的代码工作
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
int main()
{
// Setting varibles.
int col=0, textlen=0, space=0, i=0, j=0, letters=0, spaces=0;
bool ok=false;
char text[100];
// Prompt and validation.
while(ok==false)
{
printf("Enter the width of the column: ");
scanf("%d", &col);
printf("\nEnter a line of text: ");
fflush(stdin);
gets(text);
textlen=strlen(text);
if(col>textlen)
{
ok=true;
}
else
{
printf("Your text is too long for this column please try again.\n");
}
}
// Working out the space left.
for(i=0; i<textlen; i++)
{
if(text[i]!=' ')
{
letters++;
}
if(text[i]==' ')
{
spaces++;
}
}
if (spaces) space=(col-letters)/spaces;
// Writing the final product.
i=0;
while(i<textlen)
{
while(text[i]!=' ' && i<textlen)
{
printf("%c", text[i]);
++i;
}
if(text[i]==' ')
{
for(j=0; j<space; j++)
{
printf(" ");
}
i++;
}
}
return 0;
}