c语言编程问题,求高手解答(高分)
发布网友
发布时间:2023-07-12 15:50
我来回答
共5个回答
热心网友
时间:2024-11-26 02:50
你的程序没有大的问题,可以执行,只是以下几个小问题:
一、第一行包含的文件不存在,这一行应该删除。
二、定义了argc、argv两个变量没有使用,编译会有警告,可以删除他们或者不管,最好改为:
int main()
三、scanf输入n和k的时候,中间有个逗号分隔,这样输入的时候会麻烦,最好改为:
scanf("%d%d",&n,&k);
热心网友
时间:2024-11-26 02:50
这个差不多啊,你自己改改:
有n个人围成一圈,顺序排号,从第一个人开始报数(从1到3 ),凡是报到3的人退出圈子。问最后留下的是原来几号的那位 (要求:用指针)
#include <stdio.h>
#include <malloc.h>
int main()
{
int n=0,last,*arr,*p,index=1;
int i,j;
printf("输入整数n:\n");
scanf("%d",&n);
arr=(int*)malloc(sizeof(int)*n+1);
for( i=1;i<n+1;i++)
{
arr[i]=i;
}
for(j=1;j<n+1;j++)
{
printf("%4d",arr[j]);
}
printf("\n\n");
p=arr; //
for(i=1;i<n;) //i 计算次数,leave the last one !
for(j=1;j<4;j++)
{
if(j==3)
{
arr[index++]=0;//0 代表已经出局的数字
i++;
}
index++;
//process index overflow!
if(index>n)
index%=n;
}
//output
for(i=1;i<n+1;i++)
if(arr[i])
{
printf("The last num is %4dth \n",i);
break;
}
main();
return 0;
}
热心网友
时间:2024-11-26 02:51
int game(int n,int k);从main里面删掉
if(i==n-1)
{
i=0;
}
else
{
i++;
}这段有问题,i在执行完上面for后就已经等于n了。要清零!
for(i=0;i<n;i++)
{
if(a[i]==1)
return(i);
}这个之后还要一个return, 因为如果a里面没有等于1的元素,你的函数就没有返回值了。
热心网友
时间:2024-11-26 02:51
#include<stdio.h>
main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10},i,j=0,m=0;
for(i=0;j<=10;i++)
{
if(i==10)i=0;
if(a[i]!=0)
{
m++;
if(m==8)
{
printf("%d\n",i);
j++;
m=0;
a[i]=0;
}
}
}
}
以前写的,懒得改了,我这里已经初始化数组了,你自己该一下就能达到你的要求,你参考一下,够简洁了吧!!
热心网友
时间:2024-11-26 02:52
搞什么,问题都不给,怎么帮你啊