我在编程方面绝对是全新的,我不确定如何解释我在这里所做的事情。
这部分的全部目的是输入值,然后以相同的顺序打印出来。现在我想在按“q”时退出输入值,所以我必须扫描字符,但是当我将它们分配回 int 数组时,值不一样。
希望这对你有意义,但无论如何这是我的代码:
#include <stdio.h>
#include <stdlib.h>
#define SIZE 5000
define flush fflush(stdin)
main() {
int input[SIZE] = {0},i = 0;
int counter = 0;
char inputs, quit;
do {
system("cls");
printf("Input number ('q' to quit and display numbers entered): ");
flush;
scanf("%c",&inputs);
flush;
if (inputs == 'q')
quit = 'q';
else {
input[i] = inputs;
counter++;
i++;
}
} while (i < SIZE && quit != 'q');
for(i = 0; i < counter; i++){
printf("%i.%i\n", i + 1, input[i]);
}
system("pause");
}
顺便说一句,我一直在尝试自己做这件事,并且还在网上研究了一些关于字符的信息,但找不到任何对我有帮助的东西。非常感谢。
最佳答案
你不应该通过 %c 获取整数,也不应该将 char 值分配给整数变量,而这不是本意,而是你应该这样处理
i = 0;
do {
printf("Enter a number: ");
scanf("%d", &input[i]);
i++; counter++;
printf("Do you want to continue? (y/n) : ");
scanf("%c", &inputs);
} while(inputs == 'y');
或者您可以预先获取整数输入的数量并循环获取那么多整数。
关于c - int 数组不获取 char 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13104672/