当我编译程序时,它似乎可以正常工作,但当它要求"cuadrados";,程序刚刚停止:
int main(){
int *ptrs, suma=0, n, i, m;
printf("cuantos numeros al cuadrado quiere?: ");
scanf("%i", &n);
int numero[n], cubo[n];
*ptrs=numero
当程序停止时:
for(i=0;i<n;i++){
printf("escriba los cuadrados: ");
scanf("%i", numero[i]);
}
printf("Cuantos numero al cubo quiere?: ");
scanf("%i", m);
for(i=0;i<n;i++){
printf("escriba los cubos: ");
scanf("%i", cubo[i]);
}
我以前有过这个问题,但我不明白为什么它不能继续运行;它只要求输入1个数字,然后停止,没有任何错误或警告。
for(i=0;i<n;i++){
printf("escriba los cuadrados: ");
scanf("%i", &numero[i]);
}
printf("Cuantos numero al cubo quiere?: ");
scanf("%i", &m);
for(i=0;i<n;i++){
printf("escriba los cubos: ");
scanf("%i", &cubo[i]);
}
您需要使用&
运算符在scanf
中给出变量的地址
这将崩溃,因为scanf
需要一个指向int的指针,而不是int:
scanf("%i", numero[i]);
这不会:
if (scanf("%i", &numero[i]) == 1) {
/* do something */
}
else {
/* scanf failed */
}
请注意,不测试scanf
返回值总是会带来麻烦。As没有使用编译器的最大警告级别,并将所有警告转化为错误。