C语言关于for循环里的printf和scanf

img

输出结果:

img


我想要在每个 ”enter the quantity of item :” 的后面输入数字,但我现在运行是先执行完所有的pfrintf后才让我输入数字

for循环所控制的语句应该用花括号括起来,如果不括起来,那么系统默认只将for后面的第一句以;结束的语句作为for循环所控制的语句。你这样写,那for循环只控制了printf的那句,scanf语句是不属于for循环的。你需要将printf和scanf语句用花括号括起来。

//伪代码
//你这样写
for(int i=0; i<10; ++i) 
    printf();
    scanf();
//其实是下面的意思
for(int i=0; i<10; ++i) {
    printf();
}
scanf();
    
//而你要这样才对
for(int i=0; i<10; ++i) {
    printf();
    scanf();
}


#include <stdio.h>
int main()
{
    int Q[10];
    int p[10];
    int i = 0;
    while(i < 10){
        printf("enter the quantity of item %d:" ,i+1);
        scanf("%d", &Q[i++]);
    }
    printf("OK");
    return 0;
}


```c++
#include<stdio.h>
#include<stdlib.h>
int main(){
    int Q[10];
    int P[10];
    int i;
    for(i=0;i<10;i++){
        printf("enter the quantity of item%d: \n",i+1);
        scanf("%d",&Q[i]);
    }
    printf("OK");
    return 0;
}


```
需要加大括号