从键盘输入一个整数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 微信小程序协议怎么写
- ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
- ¥20 怎么用dlib库的算法识别小麦病虫害
- ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
- ¥15 java写代码遇到问题,求帮助
- ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
- ¥15 有了解d3和topogram.js库的吗?有偿请教
- ¥100 任意维数的K均值聚类
- ¥15 stamps做sbas-insar,时序沉降图怎么画
- ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看