c - 为什么我的代码没有输出?

查看:68
本文介绍了c - 为什么我的代码没有输出?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
    int a[50],b[50],n,i,m,f=0,j=0;

    memset(a,1,sizeof(int)*50);

    scanf("%d%d",&n,&m);

    for(i=0;i<n;i++)
        scanf("%d",&b[i]);

    for(i=0;i<n;i++){
            if(a[i]==0)
                j++;
            if(j==m){
                printf("%d ",b[j]);
                b[j]=0;
                j=0;
                f++;
            }
            if(f==n-1){
                for(i=0;i<n;i++){
                    if(b[i]!=0){
                        printf("the last no is:%d\n",b[i]);
                        exit(0);
                    }
                }
            }
            if(i==n-1)
                i=0;
        }
    return 0;
}

   目前我知道的是我输入的b[i]不是正常的数值。

解决方案

#include<stdio.h>
#include<string.h>
int main()
{
    int a[50],b[50],n,i,m,f=0,j=0;

    memset(a,0,sizeof(a));

    scanf("%d%d",&n,&m);

    for(i=0;i<n;i++)
        scanf("%d",&b[i]);

    for(i=0;i<n;i++){
            if(a[i]==0)
                j++;
            if(j==m){
                printf("%d ",b[i]);
                a[i]=1;
                b[i]=0;
                j=0;
                f++;
            }
            if(f==n-1){
                break;
                }
            if(i==n-1){
                i=-1;
            }
    }
      for(i=0;i<n;i++)
            if(b[i]!=0){
              printf("the last no is:%d\n",b[i]);
                    }
}

数组解约瑟夫问题

这篇关于c - 为什么我的代码没有输出?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆