c - 如何将此while循环转换为for循环?
问题描述
#include <stdio.h>
int main ()
{
int num, sum=0;
printf("Please enter a number: ");
scanf("%d",&num);
while (num>0)
{
sum += num;
printf("Please enter a number: ");
scanf("%d",&num);
}
printf ("Sum = %d ", sum);
return 0;
}
这是我做的。我试图将这个 while 循环转换为添加数字,直到用户输入 0 到 for 循环。我可以知道我的错误是什么吗?
#include <stdio.h>
int main ()
{
int num;
printf("Enter a number: ");
scanf("%d", &num);
int sum=0;
for (int i=num; i!=0; )
{
sum += num;
printf("Enter a number: ");
scanf("%d", &num);
}
return 0;
}
解决方案
您只更新num
并sum
在循环中。i
用作循环条件的 不更新。您应该删除i
未正确使用的变量,并修复循环条件。
#include <stdio.h>
int main ()
{
int num;
printf("Enter a number: ");
scanf("%d", &num);
int sum=0;
for (; num!=0; )
{
sum += num;
printf("Enter a number: ");
scanf("%d", &num);
}
return 0;
}
推荐阅读
- java - Android Studio 中的依赖项错误 - 问题:发现现有项目依赖项中的不一致。版本不兼容
- linux - 由于对 gcry-* 符号的许多未定义引用,无法链接 git2-rs
- mysql - 撰写要执行的 sql 从 find + exec 解析结果
- python - 与 Python 中的输入和输出相同的对象 - 好习惯还是坏习惯?
- android - 使用 SeekBar 的 onProgressChanged 进行数据绑定不起作用
- sql-server - 使用 SQLCMD 连接到 Windows 2003 服务器
- c# - 将 PsObject[long] 转换为 DateTime 的更短时间
- azure - 由于存储帐户错误,无法打开 Cloud Shell
- mongodb - 如何更新文档中的 Meteor 数组元素
- html - 生成的组件灰显且未在源代码管理中显示