从键盘输入一个整数n(要求n在100和1000之间),计算并输出整
数n的所有因子(不包过1和n本身)之和。
关于#c语言#的问题:从键盘输入一个整数n(要求n在100和1000之间),计算并输出整数n的所有因子(不包过1和n本身)之和
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
关注 - 你看下这篇博客吧, 应该有用👉 :求n的阶乘时溢出的解决办法
- 除此之外, 这篇博客: 输入一个正整数n(1 < n < 100),再输入n个整数,将最小数与第一个数交换(若最小数就在第一位,不需要交换),输出交换后的n个数。中的 解决方案: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
先设定变量,由题可得正整数n(1 < n < 100)故设定变量num[100]。
根据题中描述共输入n个数字故利用设定变量i并使i<n后利用for循环完成输入。即
for(i=0;i<n;i++)
{
scanf("%d",&num[i]);
}
将输入的第一个数字赋值给min,即,
min = num[0];
利用for循环比较出最小的数并得到该数的位置即,
for(i=0;i<n;i++)
{
if(min>num[i])
{
min = num[i];
minsign = i;
}
}
利用赋值变量的方法改变最小的数字和第一个数字的位置即,
temp = num[0];
num[0] = min;
num[minsign] = temp;
最后利用循环输出换后的数组,并结束即
for(i=0;i<n;i++)
{
printf("%d “,num[i]);
}
printf(”\n");
return 0;
}#include<stdio.h> int main() { int i,n,num[100],min,minsign,temp; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&num[i]); } min = num[0]; for(i=0;i<n;i++) { if(min>num[i]) { min = num[i]; minsign = i; } } temp = num[0]; num[0] = min; num[minsign] = temp; for(i=0;i<n;i++) { printf("%d ",num[i]); } printf("\n"); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
- ¥30 截图中的mathematics程序转换成matlab
- ¥15 动力学代码报错,维度不匹配
- ¥15 Power query添加列问题
- ¥50 Kubernetes&Fission&Eleasticsearch
- ¥15 報錯:Person is not mapped,如何解決?
- ¥15 c++头文件不能识别CDialog
- ¥15 Excel发现不可读取的内容
- ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
- ¥20 yolov5自定义Prune报错,如何解决?