c - C:for循环分段错误(核心转储)
问题描述
我不明白为什么会出现分段错误(核心转储)。我只是想创建一个程序,告诉你每个数字有多少个分隔符。例如 20,有 6(1, 2, 4, 5, 10, 20)。
#include <stdio.h>
int main()
{
int NOMBRE, i, RES;
int nbDivis = 0;
printf("Enter a number");
scanf("%d", NOMBRE);
for(i=1; i<= NOMBRE; i++){
RES = NOMBRE%i;
if (RES=0)
nbDivis+= 1;
}
printf("The number of dividers is %d", nbDivis);
return 0;
}
解决方案
scanf("%d", &NOMBRE);
你不应该使用scanf("%d", NOMBRE);
if (RES==0)
你不应该使用if (RES=0)
以下code
可以工作:
#include <stdio.h>
int main()
{
int NOMBRE;
int nbDivis = 0;
printf("Enter a number");
scanf("%d", &NOMBRE);
for (int i = 1; i <= NOMBRE; ++i)
if (NOMBRE%i == 0)
++nbDivis;
printf("The number of dividers is %d", nbDivis);
return 0;
}
推荐阅读
- c# - 启用连接池时 ODP.NET 缓冲区溢出
- api - SoundCloud CLIENT_SECRET - 如何获得?
- docker - 为什么 docker 容器共享图像 id?
- google-cloud-platform - 刷新 composer/airflow DAG 以动态生成任务列表
- java - 什么是 Java jar META-INF/DEPENDENCIES 以及它是如何创建的?
- javascript - 在 vue js 的选项标签中显示带有名称的图像
- android-emulator - Big Sur 上北极狐的 Android 模拟器问题
- php - 安装要求时怎么可能出现以下错误?
- php - 无法在 html2pdf 中下载 pdf
- flutter - 如何在 Flutter 中使用嵌套(或多个)Future.builder?