c - 为什么我的代码没有输出?
本文介绍了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屋!
查看全文