c - 将连续除法的其余部分存储在数组中
问题描述
我想创建一个程序,将其余的连续除法存储在数组中。但不幸的是,我创建的数组拒绝正确存储余数,例如 5/2,余数假设为 1,但数组存储另一个值
#include <stdio.h>
#include <stdlib.h>
int divise(int n){
int i=0;
int remain[20];
int rest;
while(n!=0){
rest = n%2;
remain[i] = rest;
n = n/2;
i++;
printf("%d\n",remain[i]);
}
}
int main(){
divise(10);
}
解决方案
错误在于你的i++
陈述。应该是之后printf("%d\n",remain[i]);
。
修改后的代码:-
#include <stdio.h>
#include <stdlib.h>
int divise(int n)
{
int i = 0;
int remain[20];
int rest;
while (n != 0)
{
rest = n % 2;
remain[i] = rest;
n = n / 2;
printf("%d\n", remain[i]);
i++; // repositioned
}
}
int main()
{
divise(10);
return 0;
}
输出 :-
0
1
0
1
您的函数int divise(int n)
不返回任何 int 值。所以最好让它void divise(int n)
。int main()
也应该有一个return 0
。
推荐阅读
- java - How to enable auto-complete (intellisense) in Eclipse IDE for Java
- angular - How to access inputs from Textfields in NativeScript and save them to variables like you can with document.getElementByID
- javascript - Javascript using RegEx to get multiple lines
- java - 应用程序不将文件写入内部存储 [Android]
- amazon-web-services - AWS openshift Multus CNI
- docker - 运行 Docker 容器时出现错误“当前工作目录,也不是它的任何父目录,似乎是 Nanoc 站点”
- swift - SwiftUI如何从视图调用或通知scenedelegate
- firebase - 已禁用通过来自 firebase 的调用发送 otp
- unit-testing - 提供但未定义的标志:-test.v
- flutter - Flutter - 如何根据按钮是在应用栏还是主屏幕中为平面按钮设置不同颜色的文本