编程:从键盘输入一个整数值k,再循环输入k个整数num,统计其中正数、零和负数的个数,分别存于整形

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编程:从键盘输入一个整数值k,再循环输入k个整数num,统计其中正数、零和负数的个数,分别存于整形相关的知识,希望对你有一定的参考价值。

编程:从键盘输入一个整数值k,再循环输入k个整数num,统计其中正数、零和负数的个数,分别存于整形变量abc中并输出(求助求助啊……)

参考技术A #include<stdio.h>
int main()
int k,num,a,b,c,i;
a=b=c=0;
scanf("%d",&k);
for(i=0;i<k;i++)
scanf("%d",&num);
if(num>0)a++;
else if(num<0)b++;
else c++;
printf("正数:%d\n负数:%d\n零:%d\n",a,b,c);
return 0;
本回答被提问者采纳
参考技术B

追答

int* arr那行可以删了,没注意

用java编程 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

java高手们请用较为简便的方法编写

将一个正整数分解质因数。例如:输入60;打印出2*3*5*2 

算法实现构思:

1、用Scanner实现输入一个正整数n

2、用一个for循环遍历一个从 k=2开始查找到k<=n的数

3、如果 n%k==0的时候,输出k的值

4、然后把n的值递归一下,即 n=n/k

5、这个时候要把for循环重新执行,即再定义k=2

下面是实现代码:

下面是运行结果

上面是后来整理的构思以及代码实现,一开始拿到这个题目,就立马去做了,可是马上掉进了各种各样的坑,我觉得以后做算法题先把做题思路想好,从部分到整体,不然一道简单的算法题就要耗掉很多时间。

参考资料

CSDN.CSDN[引用时间2018-1-5]

参考技术A public static void main(String[] args)
        int a=0;
        Scanner s= new Scanner(System.in);
        a=s.nextInt();
        yinzi(a);
        
   public static void yinzi(int a)
            System.out.print(a+"=");
            while(a!=1) 
            for (int i = 2; i <= a; i++) 
            if (a % i == 0) 
            System.out.print(i + " ");
            if(a!=i)
            System.out.print("*");
            
            a = a / i;
            break;
            
           
        
    

参考技术B 回答

您好亲,我是椅子,很高兴为您解答,您的问题已经收到啦,请耐心等候为您解答~❤️

提问

用C语言编写

回答

对于一个数,他的质因数必然分布在该数的平方根两侧,而且大于平方根的质因数最多只有一个,且必然是分解到最后所剩余的商。那么,我们只要构造一个循环,从2开始到sqrt(n)结束。判断该数字是否能被正整数整除,将数字分解成因数,就可以啦~

提问

程度怎么写?

回答

对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。如果n!=k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。如果n不能被k整除,则用k+1作为k的值,重复执行第一步

提问

你可以写一下程序吗

回答
参考技术C import java.util.Scanner;
public class Test4
public static void main(String[] args)
System.out.print("请输入一个要分解的正整数:");
Scanner scanner = new Scanner(System.in);
int input = scanner.nextInt();
System.out.print(input+"=");
for(int i=2;i<input+1;i++)
while(input%i==0 && input!=i)
input=input/i;
System.out.print(i+"*");

if(input==i)
System.out.print(i);
break;


scanner.close();


运行过的 正确的
参考技术D public class Test4
public static void main(String[] args)

System.out.print("请输入一个要分解的正整数:");
Scanner scanner = new Scanner(System.in);
int input = scanner.nextInt();
System.out.print(input+"=");

for(int i=2;i<input+1;i++)

while(input%i==0 && input!=i)
input=input/i;
System.out.print(i+"*");

if(input==i)
System.out.print(i);
break;


scanner.close();

以上是关于编程:从键盘输入一个整数值k,再循环输入k个整数num,统计其中正数、零和负数的个数,分别存于整形的主要内容,如果未能解决你的问题,请参考以下文章

C语言编程:从键盘输入10个数,求最大值,最小值和平均值

C语言编程:从键盘输入10个数,求最大值,最小值和平均值

编写程序,完成从键盘输入5位整数,将它们逆序输出 这个怎么做啊?求解

java编程从键盘输入10个整数,编程实现将其中最大数与最小数的位置对换后,再输出调整后的数组。

猴子选大王

用java编程 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。