标题:高手帮忙看看 这段不理解 谢谢
只看楼主
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:0 
以下是引用露营地在2015-9-16 14:57:09的发言:

!k%j就是说如果k%j=0的话  那么就是真的  就执行咯


是的!就是单目运算符-取反运算

剑栈风樯各苦辛,别时冰雪到时春
2015-09-16 14:58
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:0 
程序代码:
#include <stdio.h>
#include <conio.h> 
int isprime(int n)
{
    int step=4,i;
    if(n==2||n==3||n==5)return 1;
    if((n%2==0)||(n%3==0)||(n%5==0))return 0;
    for(i=5;i<n;i+=step)
    {
        if(!(n%i))return 0;
        step^=6;    
    }
    return 1;
}
main()
{
    int j, k,co;
    printf("please input an integer number between 2 and 10000: ");
    scanf("%d", &k);
    printf("the prime factor(s) of %d is :", k);     //这句话说明程序功能是找素因数
    for(j=2;j<=k;j++)
    {
        co=1;
        if(!(k%j))
        {
            if(isprime(j))
            {
                printf("\n%4d",j);      
                k/=j;
                while(!(k%j)){k/=j;co++;}
                printf(":\t%d",co);
            }
        }
    }
    getch();
}

不好意思,来晚了,作业太多

[ 本帖最后由 林月儿 于 2015-9-16 21:10 编辑 ]

剑栈风樯各苦辛,别时冰雪到时春
2015-09-16 21:09
露营地
Rank: 2
来 自:湛江
等 级:论坛游民
帖 子:150
专家分:23
注 册:2015-6-27
得分:0 
回复 12楼 林月儿
恩恩  没事的

不要不要的。。。
2015-09-16 23:08
露营地
Rank: 2
来 自:湛江
等 级:论坛游民
帖 子:150
专家分:23
注 册:2015-6-27
得分:0 
以下是引用林月儿在2015-9-16 21:09:33的发言:

#include  
#include   
int isprime(int n)
{
    int step=4,i;                                这里到
    if(n==2||n==3||n==5)return 1;
    if((n%2==0)||(n%3==0)||(n%5==0))return 0;
    for(i=5;i
谢谢 哈

不要不要的。。。
2015-09-16 23:21
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:0 
回复 14楼 露营地

剑栈风樯各苦辛,别时冰雪到时春
2015-09-17 06:49
露营地
Rank: 2
来 自:湛江
等 级:论坛游民
帖 子:150
专家分:23
注 册:2015-6-27
得分:0 
回复 15楼 林月儿
#include <stdio.h>
#include <string.h>

void fun(char str[][10], int m, char *pt)
{
    int k, q, i;
    for(k=0;k<m;k++)
    {
        q=strlen(str[k]);
        for(i=0;i<q;i++)
        {
            pt[i]=str[k][i];
        }
        pt+=q;

    }
    pt[0]='\0';
}

void main()
{
    int m, h;
    char s[10][10], p[120];
    printf("please input a m:\n");
    scanf("%d", &m);
    gets(s[0]);      为什么我不要这代码是   我输入的m值为3时    在下面的输入时 只能输两次呢   有了这段代码之后 就能输三次
    printf("please enter %d string :\n", m);
    for(h=0;h<m;h++)
    {
        gets(s[h]);
    }
    fun(s, m, p);
    printf("the result is: %s", p);
    getch();
}

不要不要的。。。
2015-09-17 13:15
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:0 
回复 16楼 露营地
不太懂

剑栈风樯各苦辛,别时冰雪到时春
2015-09-17 14:11
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:0 
回复 16楼 露营地
int m, h;
    char s[10][10], p[120];
    printf("please input a m:\n");
    scanf("%d", &m);
//    gets(s[0]);      //为什么我不要这代码是   我输入的m值为3时    在下面的输入时 只能输两次呢   有了这段代码之后 就能输三次
    printf("please enter %d string :\n", m);
    for(h=0;h<m;h++)
    {
        scanf("%s",s[h]);
    }
连接字符串的新题啊?怎么不单独开贴呢?
恩,楼上说的对上面是一种解决方案
也可以清空输入缓冲区
    scanf("%d", &m);
//    gets(s[0]);      //为什么我不要这代码是   我输入的m值为3时    在下面的输入时 只能输两次呢   有了这段代码之后 就能输三次
    fflush(stdin);
    printf("please enter %d string :\n", m);
    for(h=0;h<m;h++)
    {
        gets(s[h]);
    }
    fun(s, m, p);

剑栈风樯各苦辛,别时冰雪到时春
2015-09-17 14:27
露营地
Rank: 2
来 自:湛江
等 级:论坛游民
帖 子:150
专家分:23
注 册:2015-6-27
得分:0 
回复 19楼 林月儿
清空键盘的缓冲区的数据  恩恩  好像有道理   不过我前面只输入一个数子 就读取了  应该缓冲区没有数据才对啊      
  不过为什么还是要了前面的scanf  就能输三次呢;而不要只能两次


不要不要的。。。
2015-09-17 14:57
露营地
Rank: 2
来 自:湛江
等 级:论坛游民
帖 子:150
专家分:23
注 册:2015-6-27
得分:0 
回复 18楼 边小白
恩恩  清了一下 就可以了

不要不要的。。。
2015-09-17 14:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-457346-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.453324 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved