C FOR 条件
C FOR Condition
我需要创建一个简单的程序,向用户请求 10 个数字,然后显示这些数字的总和,或者,如果用户输入 0,则停止并立即显示这些数字的总和,我需要仅通过使用 "for" 条件来创建它。这是代码:
#include <stdio.h>
int main(){
int num = 0;
for(num = 0; num < 10; num++){
printf("Input a number: \n");
scanf("%d", &num);
if(num == 0){
printf("Sum: %d\n", num);
}
}
printf("Sum: %d\n", num);
getchar();
getchar();
}
只有当数字大于“10”时才会停止。怎么了?
您的代码中的问题是,您使用相同的变量 num
作为计数器和获取用户输入,这破坏了 for
循环中的逻辑。
使用另一个变量来获取用户输入。
此外,您必须有一个 break
语句来在您达到中断条件后停止 for
循环。
注意:正如我在评论中提到的,Sum
没有逻辑。
检查下面的代码。
#include <stdio.h>
int main(){
int num = 0;
int sum = 0; //to hold the sum
int input = 0;
for(num = 0; num < 10; num++){
printf("Input a number: \n");
scanf("%d", &input);
sum += input; // yoo-hoo, time to add-up
if(input == 0){
printf("Sum: %d\n", sum);
break; // time to say bye-bye to for loop
}
}
if (num == 10) //only print if not printed previously
printf("Sum: %d\n", sum);
return 0;
}
我想你想用你的代码做这种工作。
#include <stdio.h>
int main(){
int num = 0;
int sum=0;
for(num = 0; num < 10; num++){
int i;
printf("Input a number: \n");
scanf("%d", &i);
sum = sum+i;
if(i == 0){
printf("Sum: %d\n", sum);
getchar();
return 0;
}
}
printf("Sum: %d\n", sum);
getchar();
return 0;
}
您正在更改 for 循环内的计数器值。这就是为什么当你读取一个大于或等于 10 的值时,它会放弃 for 循环,因为你有条件 num < 10
.
让我为您调整代码:
#include <stdio.h>
int main(){
int sum = 0;
int i;
int num;
for(i = 0; i < 10; i++){
printf("Input a number: \n");
scanf("%d", &num);
sum += num;
if(num == 0){
break; //means leave the loop
}
}
printf("Sum: %d\n", sum);
getchar();
return 0;
}
我使用了 3 个变量:
sum
,用于存放总和
i
,用作 for loop
计数器。
num
,用于存放用户当前给定的号码
首先,我在等待输入:
printf("Input a number: \n");
scanf("%d", &num);
现在,输入存储在 num 中,所以我要升级总和,以添加新值:
sum += num;
I检查当前数字是否为零;在那种情况下,我将离开循环:
if(num == 0){
break;
}
我需要创建一个简单的程序,向用户请求 10 个数字,然后显示这些数字的总和,或者,如果用户输入 0,则停止并立即显示这些数字的总和,我需要仅通过使用 "for" 条件来创建它。这是代码:
#include <stdio.h>
int main(){
int num = 0;
for(num = 0; num < 10; num++){
printf("Input a number: \n");
scanf("%d", &num);
if(num == 0){
printf("Sum: %d\n", num);
}
}
printf("Sum: %d\n", num);
getchar();
getchar();
}
只有当数字大于“10”时才会停止。怎么了?
您的代码中的问题是,您使用相同的变量 num
作为计数器和获取用户输入,这破坏了 for
循环中的逻辑。
使用另一个变量来获取用户输入。
此外,您必须有一个 break
语句来在您达到中断条件后停止 for
循环。
注意:正如我在评论中提到的,Sum
没有逻辑。
检查下面的代码。
#include <stdio.h>
int main(){
int num = 0;
int sum = 0; //to hold the sum
int input = 0;
for(num = 0; num < 10; num++){
printf("Input a number: \n");
scanf("%d", &input);
sum += input; // yoo-hoo, time to add-up
if(input == 0){
printf("Sum: %d\n", sum);
break; // time to say bye-bye to for loop
}
}
if (num == 10) //only print if not printed previously
printf("Sum: %d\n", sum);
return 0;
}
我想你想用你的代码做这种工作。
#include <stdio.h>
int main(){
int num = 0;
int sum=0;
for(num = 0; num < 10; num++){
int i;
printf("Input a number: \n");
scanf("%d", &i);
sum = sum+i;
if(i == 0){
printf("Sum: %d\n", sum);
getchar();
return 0;
}
}
printf("Sum: %d\n", sum);
getchar();
return 0;
}
您正在更改 for 循环内的计数器值。这就是为什么当你读取一个大于或等于 10 的值时,它会放弃 for 循环,因为你有条件 num < 10
.
让我为您调整代码:
#include <stdio.h>
int main(){
int sum = 0;
int i;
int num;
for(i = 0; i < 10; i++){
printf("Input a number: \n");
scanf("%d", &num);
sum += num;
if(num == 0){
break; //means leave the loop
}
}
printf("Sum: %d\n", sum);
getchar();
return 0;
}
我使用了 3 个变量:
sum
,用于存放总和i
,用作for loop
计数器。num
,用于存放用户当前给定的号码
首先,我在等待输入:
printf("Input a number: \n");
scanf("%d", &num);
现在,输入存储在 num 中,所以我要升级总和,以添加新值:
sum += num;
I检查当前数字是否为零;在那种情况下,我将离开循环:
if(num == 0){
break;
}