gpt4 book ai didi

c - 从标准输入读取整数并保存它们 - C

转载 作者:太空宇宙 更新时间:2023-11-04 02:10:02 24 4
gpt4 key购买 nike

输入的第一行包含一个整数。每个输入后跟一行包含两个整数,每个整数不大于 1 000 000。第一个整数 n 是 vector 的大小,第二个整数 m 是来自寄存器信息的行数。以下每一行都包含两个整数 x 和 y 表示。一行中的任意两个整数由一个空格分隔。这些行不包含其他字符,除了结束的新行

所以我选择 x 作为 vector 中的位置。 x存储在my_struct结构中的num1中,y存储在num2

typedef struct my_struct{
int num1;
int num2;
bool my_bool;
} my_struct;


int main(){
int testCase, sizeVector, numLines, num1_in, num2_in, linesScanned = 0;
scanf("%d\n %d %d", &testCase, &sizeVector, &numLines);

my_struct my_vector[sizeVector+1];

my_vector[0].num1 = testCase;
my_vector[0].num2 = 0;
my_vector[0].my_bool = false;

while (linesScanned < numLines) {
scanf("%d %d\n ", &num1_in, &num2_in);
my_vector[num1].num1 = num1_in;
my_vector[num1].num2 = num2_in;
my_vector[num1].my_bool = false;
linesScanned++;

}}

输入示例:

1
3 2
1 2
2 3

我的问题是第一个 scanf 运行良好,但循环中的 on 却不行。它没有按应有的方式保存值

最佳答案

改变第二个scanf():

scanf("%d %d\n ", &num1_in, &num2_in);

通过

scanf(" %d %d", &num1_in, &num2_in);

事实上,在您的第二个 scanf() 中,您在开始读取整数之前没有捕捉到新行。新行已在您的输入中输入,但在第一个 scanf() 和第二个 scanf()

中都没有被捕获

在第二个 scanf() 中的字符串格式的开头添加空格将捕获任何空白(空格、制表符、换行...)

关于c - 从标准输入读取整数并保存它们 - C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15367070/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com