我有一个作业应该向用户询问一个数字并制作一个正方形,长度是他们输入的数字。如果用户输入 5,那么程序需要制作一个 5x5 的正方形。
当我编译它时,我得到一个分段错误(核心转储)。我不知道问题出在哪里。你们能帮帮我吗?我什至尝试用纸和铅笔运行程序,看看我的输出是什么,这对我来说似乎很好。
#include <stdio.h>
int main (){
int size, limit = 0;
char ch = 'A';
int rows = 1;
printf("Enter size:\n");
scanf("%d", size);
while (limit <= size){
if (rows == 1 || rows == size){ /* This only works in first and last row */
printf("%c", ch);
limit++;
}
if (rows != 1 && rows != size){ /* This only works if row is not 1 and last row*/
do{
printf("%c", ch);
limit++;
do {
printf(" ");
limit++;
} while (limit != size -1);
limit++;
if (limit == size){
printf("%c", ch);
rows++;
limit = 0;
printf("\n");
}
}while (rows != 1 && rows != size); /* while not in first AND last row */
}