Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 为什么这个for循环被忽略了?_C_For Loop - Fatal编程技术网

C 为什么这个for循环被忽略了?

C 为什么这个for循环被忽略了?,c,for-loop,C,For Loop,我不确定我做错了什么,但是for循环没有初始化 代码只是立即显示printfs。因为for循环未激活,所以它们中没有值 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #define PAUSE system("Pause") main() { // INITALIZE VARIABLES int number = 0; int i = 0;

我不确定我做错了什么,但是for循环没有初始化
代码只是立即显示printfs。因为for循环未激活,所以它们中没有值

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#define PAUSE system("Pause")

main() {
    // INITALIZE VARIABLES 
    int number = 0;
    int i = 0;
    int odd = 0;
    int even = 0;
    int totalNum = 0;
    int tempNum = 0;
    int count;

    printf("Enter a number between 2 and 25\n");
    scanf("%i", &number);

    do{
        if (number < 2 || number > 25)
            printf("That was an invalid number please try again\n");
            scanf("%i", &number);
    } while (number < 2 || number > 25);

    printf("Enter how many numbers you want to input\n");
    scanf("%i", &count);

    for (i = 1; i == count; ++i){
        printf("input numbers\n");
        scanf("%i", &tempNum);
        if (tempNum % 2 == 0)
            even++;
        else
            odd++;
        totalNum = totalNum + tempNum;
    } // END FOR LOOP

    // DISPLAY OUTPUT
    printf("You entered %i numbers\n", count);
    printf("The sum of the %i numbers is %i\n", count, totalNum);
    printf("The average of the %i numbers is %i\n", count, totalNum / count);
    printf("You entered %i odd numbers and %i even numbers\n", odd, even);

    PAUSE;
} // END MAIN
\define\u CRT\u SECURE\u NO\u警告
#包括
#包括
#定义暂停系统(“暂停”)
main(){
//初始化变量
整数=0;
int i=0;
int奇数=0;
int偶数=0;
int totalNum=0;
int tempNum=0;
整数计数;
printf(“输入一个介于2和25之间的数字”);
scanf(“%i”和编号);
做{
如果(数量<2 | |数量>25)
printf(“这是一个无效的数字,请重试\n”);
scanf(“%i”和编号);
}而(数量<2 | |数量>25);
printf(“输入要输入的数字数量\n”);
scanf(“%i”、&count);
对于(i=1;i==count;++i){
printf(“输入数字”);
scanf(“%i”、&tempNum);
如果(tempNum%2==0)
偶数++;
其他的
奇数++;
totalNum=totalNum+tempNum;
}//循环结束
//显示输出
printf(“您输入了%i个数字\n”,计数);
printf(“%i个数字的总和是%i\n”,count,totalNum);
printf(“%i个数字的平均值是%i\n”,count,totalNum/count);
printf(“您输入了%i个奇数和%i个偶数\n”,奇数、偶数);
暂停;
}//末端总管

i=1
,所以
i==count
给出
false
因此循环被忽略。

i=1
,因此
i==count
给出
false
因此循环被忽略。

当您初始化
i
1
时,循环最多只执行一次

如果为计数输入
1

   printf("Enter how many numbers you want to input\n");
   scanf("%i", &count);
循环将只运行一次,直到
i
增加到2

您可能想要:

for (i = 1; i <= count; ++i){

for(i=1;i当您将
i
初始化为
1
时,循环最多只执行一次

如果为计数输入
1

   printf("Enter how many numbers you want to input\n");
   scanf("%i", &count);
循环将只运行一次,直到
i
增加到2

您可能想要:

for (i = 1; i <= count; ++i){

for(i=1;iC中的for循环的工作原理如下:

for ( variable initialization; condition; variable update ) {
    /* Do something... */
}
for (i = 0; i < count; i++)
只要条件,循环就会执行。因此,执行时:

for (i = 1; i == count; ++i)
只要i==count为true,循环就会执行。因此,除非执行此行时count保持1,否则循环永远不会运行

正如其他人所指出的,您可能希望:

for (i = 1; i <= count; ++i)

for(i=1;iC中的for循环的工作原理如下:

for ( variable initialization; condition; variable update ) {
    /* Do something... */
}
for (i = 0; i < count; i++)
只要条件,循环就会执行。因此,执行时:

for (i = 1; i == count; ++i)
只要i==count为true,循环就会执行。因此,除非执行此行时count保持1,否则循环永远不会运行

正如其他人所指出的,您可能希望:

for (i = 1; i <= count; ++i)

for(i=1;i你非常接近。除了修复你的循环测试子句
for(i=1;i你非常接近。除了修复你的循环测试子句
for(i=1;i
do{
如果(数量<2 | |数量>25)
printf(“这是一个无效的数字,请重试\n”);
scanf(“%i”和编号);
}而(数量<2 | |数量>25);
应该是

do{
    if (number < 2 || number > 25){
        printf("That was an invalid number please try again\n");
        scanf("%i", &number);
    }
} while (number < 2 || number > 25);
do{
如果(数量<2 | |数量>25){
printf(“这是一个无效的数字,请重试\n”);
scanf(“%i”和编号);
}
}而(数量<2 | |数量>25);
否则它总是要求另一个号码

do{
如果(数量<2 | |数量>25)
printf(“这是一个无效的数字,请重试\n”);
scanf(“%i”和编号);
}而(数量<2 | |数量>25);
应该是

do{
    if (number < 2 || number > 25){
        printf("That was an invalid number please try again\n");
        scanf("%i", &number);
    }
} while (number < 2 || number > 25);
do{
如果(数量<2 | |数量>25){
printf(“这是一个无效的数字,请重试\n”);
scanf(“%i”和编号);
}
}而(数量<2 | |数量>25);


否则它总是询问另一个数字

哦,谢谢你,我更改了比较运算符,它works@PastelitosSlim不用客气。别忘了选择你最好的答案;)哦,谢谢你,我更改了比较运算符,并且works@PastelitosSlim不客气。别忘了选择最佳答案;)答案没有给出答案,
i==count
-->
i重复循环
n
次的正常习惯用法是
for(i=0;i
。习惯从0开始计数,这在编程中很常见。答案并没有给出答案,
i==count
-->
i重复循环
n
的正常习惯用法是
for(i=0;i
。习惯从0开始计数,这在编程中很常见。请看我的评论。@WeatherVane我在你的下一个VOT之前添加了修复程序,你的修复程序
I
将失败。@WeatherVane我刚刚更新了它,请看我的评论。@WeatherVane我在你的下一个VOT之前添加了修复程序,你的修复程序
I
将失败ail.@WeatherVane再次,我刚刚更新了它好的捕捉,最好是有一个
while(number<2 | | number>25){
loop。好的捕捉,最好是有一个
while(number<2 | | number>25){
loop。