我试图创建一个字符串来存储和打印最大的字符输入,但每次我试图创建嵌套循环时,它都不能正确打印或出现seg.错误。
#include<stdio.h>
#include<string.h>
#define ROWS 5
#define LENGTH 1024
int main(void)
{
char wordinput[ROWS][LENGTH]; // For storing user input while incrementing with wordcount string.
int wordcount[ROWS]; // For storing user input to determine largest character string
char j;
for(int i = 0; i < ROWS; i++)
{
while(i < ROWS)
{
printf("Word %d: ", i + 1); // Add 1 to 'i' so string wordcount string is logical. i.e. Word 1, Word 2, Word 2... instead of Word 0, Word 1, Word 2...
scanf("%c", wordinput[i][j]);
i++;
for(int j = 0; j <= i; j++)
{
wordinput[i][j] = wordinput[i][0];
printf("Input %s is the largest, and IT IS a palindrome!", &wordinput[i][0]);
break;
}
}
break;
}
return 0;
}
我已经将内部循环函数更改为if语句、while循环,我还更改了数据类型--然而我尝试的所有操作要么不能正确输出,要么出现分段错误。
1条答案
按热度按时间vmjh9lq91#
您的程式码有许多问题。
首先,你有一个嵌套循环。外层循环迭代
i
,内层循环迭代j
。但是,你在两个循环中使用了相同的变量i
。这是不正确的。第二,您错误地使用了
scanf()
。scanf()
需要指向数组第一个元素的指针。您传递的是指向数组第二个元素的指针。这是不正确的。第三,您在内部循环中使用了
wordinput[i][j]
。这是不正确的,因为j
尚未初始化。第四,在打印最大的字符串时使用了
&wordinput[i][0]
。这是不正确的,因为您打印的是字符串的第一个字符,而不是整个字符串。以下是更正后的版本: