c语言好数
‘壹’ 二级c语言优美数程序怎么写好求程序段。求高手。
#include<stdio.h>
#include<string.h>
#define N 10000
int yms[10000][3],cnt,visit[10];//cnt用于记录个数
int cheak(int a,int b)
{
int c,i;
c=a+b;
if(c>10000)
return 0;
memset(visit,0,sizeof(visit));
while(a)
{
if(visit[a%10])
return 0;
visit[a%10]=1;
a=a/10;
}
while(b)
{
if(visit[b%10])
return 0;
visit[b%10]=1;
b=b/10;
}
while(c)
{
if(visit[c%10])
return 0;
visit[c%10]=1;
c=c/10;
}
for(i=0;i<烂闷10;i++)
if(visit[i]==0)
return 0;
return 1;
}
int fun()
{
int a,b;
cnt=0;
for(a=10;a<=99;a++)
for(b=100;b<=9999;b++)
{
if(cheak(a,b))
{
yms[cnt][0]=a;
yms[cnt][1]=b;
yms[cnt][2]=a+b;
cnt++;
}
}
for(a=100;a<=999;a++)
for(b=100;b<饥笑弯=9999;b++)
{
if(cheak(a,b))
{
yms[cnt][0]=a;
yms[cnt][1]=b;
yms[cnt][2]=a+b;
cnt++;
}
}
return cnt;
}
void print()
{
int i;
for(i=0;i<cnt;i++)
{
printf("%d+%d=%d\n"升腊,yms[i][0],yms[i][1],yms[i][2]);
}
}
int main()
{
fun();
print();
return 0;
}
‘贰’ C语言中如何定义数组
数组定义的三种方式
1、第一种
int []a = newint[5];
a[0] = 10;
2、第二种
int []c = newint[]{1,2,3};
3、第三种
int []i ={1,2,3,4};
4、错误的写法
int []i1 = [1,2,3,4];
System.out.println(Arrays.toString(c));
5、总之,具体的元素不能被【】包裹。【】包裹的应该是数组的数量。
(2)c语言好数扩展阅读
数组的注意事项:
1、 数组中每个元素的数据类型必须相同,对于inta[4];,每个元素都必须为 int。
2、 数组长度 length最好是整数或者常量表达式,
3、 访问数组元素时,下标的取值范围为 0 ≤ index < length,
参考资料
网络-数组
‘叁’ c语言 K好数
动态规划
代码供参考
#include<stdio.h>
intf[101][101];
intmain()
{
intk,l,i,j,p;
intsum=0;
scanf("%d%d",&k,&l);
for(i=0;i<=k-1;i++)
f[1][i]=1;
for(i=2;i<基橘=l;i++)
{
for(j=0;j<=k-1;j++)
{
for(p=0;p<搏毕团=k-1;p++)
{
if(p!=j-1&数辩&p!=j+1)
{
f[i][j]+=f[i-1][p];
if(f[i][j]>1000000007)f[i][j]%=1000000007;
}
}
}
}
for(i=1;i<=k-1;i++)
{
sum+=f[l][i];
if(sum>1000000007)sum%=1000000007;
}
printf("%d",sum);
return0;
}
‘肆’ c语言好玩的函数
桌面下雪程序:#include<windows.h>
#include<time.h>
#include<stdlib.h>
#include<iostream.h>const int SnowNumber=500; //雪点数量struct SnowNode
{
POINT postion; //雪点位置
int iColor; //先前的颜色
int iSpeed; //下落老山塌速度
int iMove; //下落距离
int iStick; //粘贴度
};SnowNode SnowNodes[SnowNumber]; //雪点数组
int hTimer=0;
int CrWind=0;
int CrStep=0; //当唯搭前循环步数(用于限速)
int ScreenWidth=0; //屏幕宽度
int ScreenHeight=0; //屏幕高度void GetScreenSize();
void CALLBACK TimerProc(HANDLE hWnd,UINT uMsg,UINT idEvent,DWORD dwTime);
void InitSnowNodes();
void MoveSnowNodes();int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
)
{
MSG msg; //标准windows消息
LARGE_INTEGER Frequency; //高性能定时器频率
LARGE_INTEGER StartCt,EndCt;//高性能定时器计数
float ElapsedTime; //时间间隔
srand((unsigned)time(NULL));
GetScreenSize();
InitSnowNodes();
QueryPerformanceFrequency(&Frequency);
hTimer=SetTimer(0,0,rand()%5*500,(TIMERPROC)TimerProc);
if(hTimer==0)
{
MessageBox(0,TEXT("创建定时器失败"),TEXT("提示"),MB_OK|MB_ICONINFORMATION);
return -1;
}
RegisterHotKey(0,0,MOD_CONTROL,(int)'L');
while(1)
{
QueryPerformanceCounter(&StartCt); //执行运算前计数值
if(PeekMessage(&msg,0,0,0,1))
{
switch(msg.message)
{
case WM_TIMER: TimerProc(0,0,0,0);
break; //预设风向改变时间已到
case WM_HOTKEY: KillTimer(0,hTimer);//删除随机风向定时 器
UnregisterHotKey(0,0);//删除退出热键
InvalidateRect(0,NULL,true);
exit(1);
break;
case WM_DISPLAYCHANGE:
GetScreenSize(); //重新侍圆取屏幕的尺寸
InitSnowNodes(); //初始化雪点的数组
break;
}
}
MoveSnowNodes();
QueryPerformanceCounter(&EndCt);//执行运算后的计数值
ElapsedTime=(EndCt.QuadPart-StartCt.QuadPart)/Frequency.QuadPart;
if((ElapsedTime<0.0005))
Sleep(2); //简单限速
else if(ElapsedTime<0.0010)
Sleep(1);
else if(ElapsedTime<0.0015)
Sleep(3);
}
//MessageBox(0,TEXT(“消息“),TEXT(“消息“),MB_OK|MB_ICONINFORMATION);
return 0;
}
void GetScreenSize()
{
ScreenWidth=GetSystemMetrics(SM_CXSCREEN);
ScreenHeight=GetSystemMetrics(SM_CYSCREEN);
return ;
}void CALLBACK TimerProc(HANDLE hWnd,UINT uMsg,UINT idEvent,DWORD dwTime)
{
// MessageBox(0,TEXT(“消息“),TEXT(“消息“),MB_OK|MB_ICONINFORMATION);
srand((unsigned)time(NULL));
if(hTimer==0)
{
MessageBox(0,TEXT("创建定时器失败"),TEXT("提示"),MB_OK|MB_ICONINFORMATION);
return ;
}
SetTimer(0,hTimer,((rand()%27+4)*500),(TIMERPROC)TimerProc); //// 重设下次风向改变时间
//修改风向
if(CrWind!=0)
CrWind=0;
else
CrWind=rand()%3-1;
return ;
}void InitSnowNodes()
{
HDC hScreenDC=0;
int j=0;
hScreenDC=CreateDC("DISPLAY",NULL,NULL,NULL);
if(hScreenDC==NULL)
{
MessageBox(0,"获取屏幕DC失败!","信息",MB_OK|MB_ICONERROR);
return ;
}
srand((unsigned)time(NULL));
for(j=0;j<SnowNumber;j++)
{
SnowNodes[j].postion.x=rand()%ScreenWidth;
SnowNodes[j].postion.y=rand()%ScreenHeight;
SnowNodes[j].iColor=GetPixel(hScreenDC,SnowNodes[j].postion.x,SnowNodes[j].postion.y);
SnowNodes[j].iSpeed=(rand()%5+1); //每次下落距离(1-5)
SnowNodes[j].iStick=(30-rand()%SnowNodes[j].iSpeed); //粘贴度(几次循环作一次粘贴连判断
// cout〈〈SnowNodes[j].postion.x〈〈“ Y:“〈〈SnowNodes[j].postion.y〈〈endl;
}
DeleteDC(hScreenDC);
}void MoveSnowNodes()
{
// MessageBox(0,TEXT(“消息“),TEXT(“消息“),MB_OK|MB_ICONINFORMATION);
HDC hScreenDC=0;
srand((unsigned)time(NULL));
int x=0,y=0,i=0;
hScreenDC=CreateDC("DISPLAY",NULL,NULL,NULL);
if(hScreenDC==NULL)
{
MessageBox(0,"获取屏幕DC失败!","信息",MB_OK|MB_ICONERROR);
return ;
}
// TextOut(hScreenDC,0,0,“虽然大检查顺顺藤摸瓜克格勃呀加“,0);
for(i=0;i<SnowNumber;i++)
{
//控制雪点下降速度
if((CrStep%SnowNodes[i].iSpeed)!=0)
continue;
//恢复上次被覆盖点
if((GetPixel(hScreenDC,SnowNodes[i].postion.x,SnowNodes[i].postion.y))==0XFFFFFF)
SetPixel(hScreenDC,SnowNodes[i].postion.x,SnowNodes[i].postion.y,SnowNodes[i].iColor);
//根据几向作随机飘落
x=SnowNodes[i].postion.x+rand()%3+CrWind;
y=SnowNodes[i].postion.y+SnowNodes[i].iMove;
//积雪(停留)效果处理
if( ( (CrStep%SnowNodes[i].iStick)==0)
&&( (GetPixel(hScreenDC,x,y))!=(GetPixel(hScreenDC,x,y+1)))
&&( (GetPixel(hScreenDC,x-1,y))!=(GetPixel(hScreenDC,x-1,y+1)))
&&( (GetPixel(hScreenDC,x+1,y))!=GetPixel(hScreenDC,x+1,y+1))
)
{
//稍稍调整坐标
if(GetPixel(hScreenDC,x,y-1)==GetPixel(hScreenDC,x,y-2))
{
y--;
}
else
{
if(GetPixel(hScreenDC,x,y-1)==GetPixel(hScreenDC,x,y-2))
y++;
x+=CrWind;
}
//画三个雪花点
SetPixel(hScreenDC,x,y,0XFFFFFF);
SetPixel(hScreenDC,x+1,y+1,0XFFFFFF);
SetPixel(hScreenDC,x-1,y+1,0XFFFFFF);
//重生雪点
SnowNodes[i].postion.x=rand()%ScreenWidth;
SnowNodes[i].postion.y=rand()%10;
SnowNodes[i].iColor=GetPixel(hScreenDC,SnowNodes[i].postion.x,SnowNodes[i].postion.y);
}
else
{
if( (x<0) || (x>ScreenWidth) || (y>ScreenHeight))
{
SnowNodes[i].postion.x=(rand()%10);
SnowNodes[i].postion.y=(rand()%ScreenWidth);
SnowNodes[i].iColor=GetPixel(hScreenDC,SnowNodes[i].postion.x,SnowNodes[i].postion.y);
}
else
{
//保存颜色并绘制雪点
SnowNodes[i].iColor=GetPixel(hScreenDC,x,y);
SetPixel(hScreenDC,x,y,0XFFFFFF);
//此时保存新雪点位置
SnowNodes[i].postion.x=x;
SnowNodes[i].postion.y=y;
}
}
}
DeleteDC(hScreenDC);
CrStep++;
}
‘伍’ 要入门c语言,有什么好书介绍,入门高数的又有什么好书介绍
《c primer plus》 强烈衫皮推荐C初学者看,能对C语言有个系统氏老和严谨的认识歼塌升,为以后这方面的提高有很大帮助。如果仅仅为了考 试,那国内的谭浩强编的教科书就可以了。无论什么书,所有的例题和每章后的编程练习题一定要自己推敲,认真做,那一定会有很大收获。
高数的话都差不多。科学教育出版社的辅 导书也都不错。
‘陆’ 学C语言 还必须要数学好么
基础的C语言对数学要求不是很高,但是要想精通达橡改到很高,数学底子就要好点。因为数学好了,算法就简单,程序虚或也会简单高效很多。其实C语言也是编程语言的基础。总之一句话,数学底子越好,对梁誉判编程也越好!!!!!
‘柒’ 如何学好c语言,学习c语言最好的书(从初级到高级
理论学习的话,谭浩强的书,只能说是入门...很多东西都解释不到位,特别是C的指针...《C和指针》嘛还是不错的,如果还想提升可以看看《C专家编程》、《C陷阱和缺陷》。
除了语言,最重要的还是数据结构/算法,建议你看看严蔚敏的《数据结构》,国内考研都看这本。算法的话,可以看看《算法:C语言伏丛实现》和《算宴枣法导论》。不过不论是算法还是数据结构,都比较虚,这点可能和你的要求相反。
如果你想搞实际的开发的话,最好能够转型,比如C或者java之类的,C的程序效率高,但开发效率太低,一般都用于偏底层的开发,如驱动什么的(这种东西更加看不到了),图形的软件之类的,现在一般都用其他缺祥樱语言写的。
‘捌’ C语言 查找好数
应该是一个按位DP问题
设f(x)为0到x满足条件的个数,
那么题目要模芹求的是f(x,y),x到y满足条件的个数悄闭
f(x,y) = f(y) - f(x-1)
关键是如何求f(x)
我再想想旦运毕