c语言简单程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言简单程序相关的知识,希望对你有一定的参考价值。

问题描述
在中国数学历史上广泛流传着一个“韩信点兵”的故事。韩信点兵时,为了知道有多少兵,同时又能保住军事机密,便让士兵排队报数:
按从1至5报数,记录最末一个士兵的报数为1;
按从1至6报数,记录最末一个士兵的报数为5;
按从1至7报数,记录最末一个士兵的报数为4;
按从1至11报数,记录最末一个士兵的报数为10;
你知道韩信至少有多少兵?
【输入输出说明】无输入,输出至少应有的士兵数。

#include<stdio.h>
int main()
int i;
 for(i=10;;i+=11)
   if(i%5==1&&i%6==5&&i%7==4)break;
 printf("%d\\n",i);  
 return 0; 

参考技术A int NumberOff(int soldierCount,int baseNumber);
void Calc();

void main()

Calc();


/*
 * 报数
 */
int NumberOff(int soldierCount,int baseNumber)

return soldierCount%baseNumber;


/*
 * 简单粗暴的计算人数
 */
void Calc()

int soldierCount = 0;
while (1) 
soldierCount++;
if (NumberOff(soldierCount, 5) == 1 && NumberOff(soldierCount, 6) == 5 && NumberOff(soldierCount, 7) == 4 && NumberOff(soldierCount, 11) == 10) 
printf("There are %d soldier(s)", soldierCount);
break;


追问

求破

参考技术B 你好,很高兴为你解答,这道题就是用一个for循环和利用余数来做,代码如下:
#include <stdio.h>

int main()

int i;

for(i = 1; ; ++i)



if(i % 5 == 1 && i % 6 == 5 && i % 7 == 4 && i % 11 == 10)

break;



printf("%d\n", i);

return 0;

本回答被提问者和网友采纳

c语言简单程序解释一下

两个升序列,[1,3,5],[4,6,7],利用指针把他们合并成一个序列并升序输出,可以定义一个新的数组
#include <stdio.h>
#define A_NUM 3
#define B_NUM 3
#define C_NUM A_NUM+B_NUM

void display(int *p,int c[])

for(p=c; p-c< 6;) //p-c<什么意思啊?
printf("%d ",*p++);
printf("\n");


int *unite(int a[], int b[],int c[])

int *pa, *pb, *pc;
pa = a;
pb = b;
pc = c;
while(pa-a<A_NUM && pb-b<B_NUM) //括号里面意思不明白

if(*pa<*pb)
*pc++=*pa++;
else
*pc++=*pb++;

while(pa-a<A_NUM)
*pc++=*pa++;
while(pb-b<B_NUM)
*pc++=*pb++;

return pc;


main()

int a[A_NUM]=1,3,5;
int b[B_NUM]=4,6,7;
int c[C_NUM],*p;
p = unite(a,b,c);
display(p,c);


pa-a,pa-b,pa-c我不太清楚什么意思啊?
恩,,没办法,我悟性差啊

pa是一个指针,而数组名a也是指针,
开始把a赋值给pa,pa的地址是a数组的首地址&a[0],
if(*pa<*pb)
*pc++=*pa++;
该程序采用对指针的操作实现对数据的操作,
pa++是将pa指向了&a[1];
然后用pa-a实际上就是控制它不能超过数组的范围。
和用一个i控制实质没什么区别。
不过这样倒是可以省去一些空间
参考技术A pa是个一维数组,有三个连续的存储空间分别放了:a,b,c这里的意思应该是对pa里的a,b,c进行取内 参考技术B //p-c<什么意思啊?
p和c都是指针,c就是数组的首地址

比如一个数组a[10];
那a就是&a[0]
&a[1] - &a[0]等于1
&a[2] - &a[0]等于2
&a[2] - &a[1]等于1
以此类推。。。
参考技术C 这里的p=c,是将数组c[0]的地址给p,下面用的for循环,*p++就是从c[0]一直到c[5]六个数,所以p-c的值是一直改变的,如果画个图就更好懂了
C[0] <==p p向下移动
C[1]
C[2]
C[3]
C[4]
C[5]
参考技术D 这不是我的那个代码嘛?指针指向数组了
a,b,c是数组的首地址
pa-a,pb-b,pc-c就是代表相应的数组pa,pb,pc指针在数组中遍历了元素的个素

以上是关于c语言简单程序的主要内容,如果未能解决你的问题,请参考以下文章

用C语言写简单密码检测程序

c语言简单程序解释一下

c语言简单程序解释一下

C语言编写一个简单程序

关于C语言程序的一个简单题

求简单C语言程序代码!