从键盘输入一个整数n(要求n在100和1000之间),计算并输出整
数n的所有因子(不包过1和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;
}
写一个函数吧
#include <stdio.h>
int yz(int n)
{
int k = 0;
for(int i=2;i<=n/2;i++)
if(n%i==0)
{
printf("%d ",i);
k++;
}
return k;
}
int main()
{
int n,k;
scanf("%d",&n);
k = yz(n);
if(k==0)
printf("没有因子");
}