arrays - 使用 getchar() 将一些间隔整数转换为 C 中的数组的最佳方法是什么?给定最大元素数 = 5
问题描述
问题:将间隔整数转换为大小为 5 的数组。如果元素少于 5 个,则将剩余的元素设为 0。
输入仅由正整数组成,并通过命令行获取
输入的最大元素数 = 5
样本输入:
>>>1 2 3 4
它应该给我一个数组 = {1, 2, 3, 4, 0}
样本输入 2:
>>>1 2 3 4 5
它给了我一个数组 = {1,2,3,4,5}
我的代码:
int getnum(){
char c;
int i = 0, sum = -1;
c = getchar();
while ((c != '\n') && (c != ' ')){
if (sum == -1)
sum ++;
i = c - '0';
sum = 10 * sum + i;
c = getchar();
}
return sum;
}
int main(){
int count = 0, arr[5], j = 0;
char c = getnum();
while (c != -1){
arr[count] = c;
count ++;
c = getnum();
}
for(j = count; j < 5; j++)
arr[j] = 0;
return 0;
}
我的代码需要两个换行符才能工作(即输入所需的数字后,如果我按两次回车,程序会给出输出),而我只需要按一次回车即可输出。修改代码以使其工作的最简单方法是什么?
解决方案
推荐阅读
- c++ - 在 C++ 中将字符串添加到另一个字符串时的奇怪行为
- python-3.x - How can I condence this function into returning a value from a list comprehension?
- python - Changing variable values in for loop?
- java - Does singly linked list have to be defined recursively?
- html - How do I create a draggable div that only accepts one at a time
- python - 有没有办法使用输入来爬嵌套字典?
- firebase-analytics - 控制台上的 Firebase 自定义事件参数分析
- r - Create and save a plot for different groups using ggplot for loop from one .csv file
- google-cloud-platform - Why is Cloud AutoML Vision rotating my image?
- python - Call Variables From For Loop