2 qq 33748682 qq_33748682 于 2016.01.30 17:49 提问

一个小的C语言题目,帮忙看看有没有问题

这是我写的代码,下面图片是题目
#include
int pend(int x)
{
int i;
for(i=2;i*i<=x;i++)
{
if(x%i==0)
return 1;
}
return 0;
}
int main()
{
int n,m,a,b,t;
int i,j,k,s=0;
scanf("%d",&t);
while(t--)
{
printf("输入参与的人数n和小明的编号m:\n");
scanf("%d%d",&n,&m);
printf("输入开始的人的编号a和开始的合数b\n");
scanf("%d%d",&a,&b);
for(k=a;k!=m;)
{
if(s%2!=0)//“s”用来纪录素数的个数//
{
k-=1;b+=1;
if(k==0)k=n;
}
else
{
k+=1;b+=1;
if(k==n+1)k=1;
}
if(pend(b)==0)
s++;
}
if(pend(b)==0)
printf("duang\n");
else
printf("%d\n",b);
}
return 0;
}图片图片

3个回答

caozhy
caozhy   Ds   Rxr 2016.01.31 08:09
 #include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
bool _isprime(int k)
{
    int i;
    for(i=2;i<=sqrt(k);i++)
    {
        if(k%i==0)
            return false;
    }
    return true;
}
int main()
{
    int i,j,k,T,n,m,a,b;
    cin>>T;
    while(T--)
    {
        int next,flag=0;
        k=0;
        cin>>n>>m>>a>>b;
        next=a%n+1;
        if(m==a)
        {
            cout<<b<<endl;
            continue;
        }
        while(next!=m)
        {
            if(!flag)
            {
                if(_isprime(++b))
                {
                    flag=1; 
                    if(next==1)
                        next=n;
                    else
                        next=next-1;    
                }
                else
                    next=next%n+1;
            }
            else
            {
                if(_isprime(++b))
                {
                    flag=0;
                    next=next%n+1;
                }
                else
                {
                    if(next==1)
                        next=n;
                    else
                        next=next-1;
                }
            }
        }
        if(_isprime(++b))
            cout<<"duang"<<endl;
        else
            cout<<b<<endl;

    }
}

你那个输入输出都不对

qq_33748682
qq_33748682   2016.01.30 17:54

复制出了点问题#include没有复制好,不好意思,各位帮忙看看除了它,其他有没有思路上的问题

91program
91program   Ds   Rxr 2016.01.30 21:14

有没有问题,难道LZ你没有试试调试运行一下,看看能否得到你想要的结果。
如果不能,则说明有问题,再将你具体的问题提出来吧。

还有就是贴代码时,请使用编辑区的 </> 功能,以方便别人看代码。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
红警
题目描述 Flsy的朋友喜欢玩红警,一天Flsy的朋友小龙,让他帮忙解决一个问题。问题可以这样描述,小龙现在要攻打敌方的大本营,生命值为m,小龙这边有n种坦克,每种塔克一旦造出后,每一秒钟都能对大本营造成一定伤害。小龙想知道最少用多少时间就能将敌方的大本营摧毁? 输入 输入数据一行,两个正数n和m,表示塔克的总数和大本营的生命值。 接下来n行,每行两个整数ti和vi,...
正则问题希望朋友帮忙解决
<br /> $a =  "[ms]<br />         index.title = 魔兽我爱悠闲<br />         index.keywords = 网页游戏,网页游戏大全,,新手卡,英雄卡,联合运营<br />         index.description = 欢迎加入闲人。<br />         <br />         [sgb]<br />         index.title = 三国帮闲人开始<br />         index.keywo
C语言求素数的程序
一个用C语言求素数的小程序,分享出来大家看看有没有可以改进的地方
C语言的几个有趣问题
问题1. 不能使用分号,编写一个“Hello World”程序。 问题2. 如何用C语言打印“ I am print %”? 问题3. 不能使用">、=、 问题4. 程序中不使用“+”法运算,实现整数加法运算。 参考程序: 1. 这是一个比较有趣的问题,但是答案往往十分简单,所采用的是最基本的语句,参考程序如下: #include void m
zjnu 1450 - 迷宫(BFS)解题报告
迷宫 Case Time Limit:1000MS Time Limit: 10000MS   Memory Limit: 65536K Total Submissions: 48   Accepted: 23 Description 小C最近在研究机器人,他想看看自己的机器人够不够智能,于是他将机器人放在一个n*m的迷宫中,看看机器人
按由小到大顺序排列并输出 用C语言写 希望高手帮忙 由键盘输入10数
还是去找书吧 任何一本C的书上都有 很常见的气泡法排序
C语言—经典题目
一下这些都是C语言中较为经典的例题,可以帮助大家在写程序中少走弯路,少出点BUG。 1.一下叙述中不正确的是(D) A.在不同的函数中可以使用相同名字的变量 B.函数中的形式参数是在栈中保存 C.在一个函数内定义的变量只在本函数范围内有效 D.在一个函数内复合语句中定义的变量在本函数范围内有效 (复合语句值函数中的成对括号构成) 注:D项是有错误的比如我 { int a=
九九乘法表 (sdut oj)
九九乘法表 Time Limit: 1000MS Memory Limit: 65536KB Problem Description       九九乘法表是数学学习的基础,今天我们就来看看乘法表的相关问题。《九九乘法歌诀》,又常称为“小九九”,如下图所示。你的任务是写一个程序,对于给定的一个正整数 n ,输出“九九乘法表”的前 n 行。例如,
停车场管理,哪位大侠帮忙用C语言写个程序??
<br />[问题描述] 利用堆栈和队列实现一个停车场管理系统<br />[基本要求]<br />设停车场是一个可以停放n辆汽车的狭长通道,且只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里向大门口处停放(最先到达的第一辆车放在停车场的最里面)。如果停车场已放满n辆车,则后来的车只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。停车场内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场
~这些年,我们一起学过的java~12~小学期程序设计之生理周期问题
今天解决了生理周期的计算问题,赶脚自己真心特别