这个C代码有什么问题?首先它要求2个整数,但它应该只要求1,在我输入2个整数后,它崩溃了 #包括 void main(){ inti,j,n; printf(“给出一个自然整数:”); scanf(“%d”和“&n”); 对于(i=1;i
而不是这个C代码有什么问题?首先它要求2个整数,但它应该只要求1,在我输入2个整数后,它崩溃了 #包括 void main(){ inti,j,n; printf(“给出一个自然整数:”); scanf(“%d”和“&n”); 对于(i=1;i,c,C,而不是scanf(“%d”,j);您需要printf(“%d”,j);在内部循环中。注意到这里缺少什么吗 #include <stdio.h> void main() { int i , j , n; printf("Give a natural integer : "); scanf("%d " , &n); for ( i = 1 ; i <= n ; i++) { for ( j = 1 ; j <= i ;
scanf(“%d”,j);
您需要printf(“%d”,j);
在内部循环中。注意到这里缺少什么吗
#include <stdio.h>
void main() {
int i , j , n;
printf("Give a natural integer : ");
scanf("%d " , &n);
for ( i = 1 ; i <= n ; i++) {
for ( j = 1 ; j <= i ; j++) {
scanf("%d " , j );
}
printf(" \n ");
}
}
像是&
,也许吧
scanf()
第二个参数需要一个指针,因此它知道在哪里写入扫描的值。您没有传递指针,而是传递整数,因此scanf()接收该变量中的任意随机数(因为您从未初始化它)并将该数字用作指针,导致崩溃。在嵌套的for
循环中,调用scanf(“%d”,j);
需要将j
的地址传递到scanf
scanf("%d " , j );
^---
将第一次扫描更改为:
scanf("%d " , &j );
此外,您很可能希望在循环中使用printf
:
/* scanf("%d " , &n); */
scanf("%d" , &n); // no space after %d
如果您想在循环中执行scanf
:
/* scanf("%d " , j ); */
printf("%d " , j );
与
scanf
无关,但您的main应该返回int
,而不是void
,它正在崩溃,因为:scanf(“%d”,j)
。首先,它应该是指针,而不是整数。其次,它不清楚应该实现什么。然后,输入正在改变循环条件。j
控制循环。我想OP想把printf()
“首先它要求2个整数,但它应该只要求1”问题在于%d“
-->中的空格。请删除空格。什么是“非自然整数”僵尸整数?在scanf
@haccks中缺少&
是的,但我更愿意说需要scanf
。OP正在询问程序为什么要求第二次输入。所以他可能不想要scanf
。他想要pritnf
,并假设printf
他没有放入&/code>,这可以使用问题,因为它是scanf
。所以,我解决了:)
/* scanf("%d " , j ); */
scanf("%d" , &j ); // no space after %d; and add & before j