#include <stdioh>
void dtoc(long a, char str[]);
int main()
{
long intg;
char istr[20];
for(int i=0; i<20; i++)
istr[i] = '\0';
printf("Please input a long integer:");
scanf("%d", &intg);
dtoc(intg, istr);
printf("%s\n", istr);
return 0;
}
void dtoc(long a, char str[])
{
static int t=0;
if(a > 0)
{
dtoc(a/10, str);
str[t++] = a%10 + '0';
}
else if(a == 0)
{
str[t] = '0';
return;
}
else
{
str[t++] = '-';;
a = -a;
dtoc(a, str);
}
}
0x0f 这个串,0x是前缀,代表0x之后的数是16进制的数,就是说 0f是16进制数
0x0f 的10进制对应的值是 15,
前缀修饰:
0 作为前缀代表是8进制数
0x 作为前缀代表是16进制数
比如
012就是十进制的10 (八进制)
0x12就是十进制的18 (十六进制)
12 就是十进制的12 (十进制,十进制没有前缀)
#include <graphicsh>
#include <conioh>
#include <mathh>
// 定义全局变量
int rosesize = 500;
int h = -250;
// 定义结构体
struct DOT
{
double x;
double y;
double z;
double r; // 红色
double g; // 绿色
// b(蓝色) 通过 r 计算
};
// 计算点
bool calc(double a, double b, double c, DOT &d)
{
double j, n, o, w, z;
if(c > 60) // 花柄
{
dx = sin(a 7) (13 + 5 / (02 + pow(b 4, 4))) - sin(b) 50;
dy = b rosesize + 50;
dz = 625 + cos(a 7) (13 + 5 / (02 + pow(b 4, 4))) + b 400;
dr = a 1 - b / 2;
dg = a;
return true;
}
double A = a 2 - 1;
double B = b 2 - 1;
if(A A + B B < 1)
{
if(c > 37) // 叶
{
j = (int(c) & 1);
n = j 6 : 4;
o = 05 / (a + 001) + cos(b 125) 3 - a 300;
w = b h;
dx = o cos(n) + w sin(n) + j 610 - 390;
dy = o sin(n) - w cos(n) + 550 - j 350;
dz = 1180 + cos(B + A) 99 - j 300;
dr = 04 - a 01 + pow(1 - B B, -h 6) 015 - a b 04 + cos(a + b) / 5 + pow(cos((o (a + 1) + (B > 0 w : -w)) / 25), 30) 01 (1 - B B);
dg = o / 1000 + 07 - o w 0000003;
return true;
}
if(c > 32) // 花萼
{
c = c 116 - 015;
o = a 45 - 20;
w = b b h;
z = o sin(c) + w cos(c) + 620;
dx = o cos(c) - w sin(c);
dy = 28 + cos(B 05) 99 - b b b 60 - z / 2 - h;
dz = z;
dr = (b b 03 + pow((1 - (A A)), 7) 015 + 03) b;
dg = b 07;
return true;
}
// 花
o = A (2 - b) (80 - c 2);
w = 99 - cos(A) 120 - cos(b) (-h - c 49) + cos(pow(1 - b, 7)) 50 + c 2;
z = o sin(c) + w cos(c) + 700;
dx = o cos(c) - w sin(c);
dy = B 99 - cos(pow(b, 7)) 50 - c / 3 - z / 135 + 450;
dz = z;
dr = (1 - b / 12) 09 + a 01;
dg = pow((1 - b), 20) / 4 + 005;
return true;
}
return false;
}
void f()
{ setcolor(RED);
setfont(30, 0, _T("微软雅黑"));
outtextxy(0, 0, _T("H"));
Sleep(100);
outtextxy(15, 0, _T("a"));
Sleep(100);
outtextxy(30, 0, _T("p"));
Sleep(100);
outtextxy(45, 0, _T("p"));
Sleep(100);
outtextxy(60, 0, _T("y"));
Sleep(100);
outtextxy(105, 0, _T("B"));
Sleep(100);
outtextxy(120, 0, _T("r"));
Sleep(100);
outtextxy(135, 0, _T("i"));
Sleep(100);
outtextxy(150,0, _T("t"));
Sleep(100);
outtextxy(165, 0, _T("h"));
Sleep(100);
outtextxy(180, 0, _T("d"));
Sleep(100);
outtextxy(195, 0, _T("a"));
Sleep(100);
outtextxy(210, 0, _T("y"));
Sleep(100);
outtextxy(225, 0, _T("!"));
}
// 主函数
void main()
{
// 定义变量
short zBuffer;
int x, y, z, zBufferIndex;
DOT dot;
// 初始化
initgraph(640, 480); // 创建绘图窗口
setbkcolor(WHITE); // 设置背景色为白色
cleardevice(); // 清屏
f();
// 初始化 z-buffer
zBuffer = new short[rosesize rosesize];
memset(zBuffer, 0, sizeof(short) rosesize rosesize);
for(int j = 0; j < 2000 && !_kbhit(); j++) // 按任意键退出
{
for(int i = 0; i < 10000; i++) // 减少是否有按键的判断
if(calc(double(rand()) / RAND_MAX, double(rand()) / RAND_MAX, rand() % 46 / 074, dot))
{
z = int(dotz + 05);
x = int(dotx rosesize / z - h + 05);
y = int(doty rosesize / z - h + 05);
if (y >= rosesize) continue;
zBufferIndex = y rosesize + x;
if(!zBuffer[zBufferIndex] || zBuffer[zBufferIndex] > z)
{
zBuffer[zBufferIndex] = z;
// 画点
int r = ~int((dotr h)); if (r < 0) r = 0; if (r > 255) r = 255;
int g = ~int((dotg h)); if (g < 0) g = 0; if (g > 255) g = 255;
int b = ~int((dotr dotr -80)); if (b < 0) b = 0; if (b > 255) b = 255;
putpixel(x + 50, y - 20, RGB(r, g, b));
}
}
Sleep(1);
}
// 退出
delete []zBuffer;
setcolor(RED);
setfont(60, 0, _T("微软雅黑"));
outtextxy(550, 0, _T("祝"));
Sleep(300);
outtextxy(550, 60, _T("你"));
Sleep(300);
outtextxy(550, 120, _T("生"));
Sleep(300);
outtextxy(550, 180, _T("日"));
Sleep(300);
outtextxy(550, 240, _T("快"));
Sleep(300);
outtextxy(550, 300, _T("乐"));
Sleep(300);
outtextxy(550, 360, _T("!"));
getch();
closegraph();
}
还有个烟花的,有和音乐,要的话留邮箱(写下过生日的人的名字)
奔腾好。赛扬是低端品牌,阉割了总线、二级缓存等。一般用奔腾比较好。具体这两个型号细节因为太老了我不清楚。
G31好过945。 对于双核cpu,945仅仅是兼容,由于总线的问题发挥不出性能。至少也要g31才能支持。这个区别很明显
hd3100是770还是780的集成显卡?比945的显卡不只好一条街!3100虽然阉割了高清能力,但是3d性能不错,能玩一般的游戏。intel的集成显卡除了i系列的,其他简直不值一提,只能处理桌面应用。
最近我准备去淘宝配台二手电脑用(因为主力电脑准备大幅改装,长时间不能用),可以把我配置给你参考下。我选的配置是那种比较经典的,性能不错但是时间久了便宜。再久远的东西技术老(发热量大)而且效率低而且性能还低。比如你选的,95w的高频低能。我是打游戏用的。
低配版:
cpu : e2200(不推荐你那两个,至少配酷睿架构的。架构至关重要。这个65nm技术只有65w) ¥230
主板:minix g31 (itx小板)¥188
gpu: amd 3870 ¥230
电源: 300w(额定230w)的1u电源。
cpu和gpu是二手的全淘宝最低价。主板(17 x 19 cm)和电源(8 x 4cm)都是迷你机的设备。如果按普通台式机尺寸(30 x 24 cm)价格还可以降。比如主板100就买得到。
高配版:
cpu换成 e5200 ¥320
显卡换成 amd 4850 ¥378
我配机器都是不要机箱的……去买个电源开关线¥1。
而且我有淘汰下来的ddr2内存和200g硬盘。
价格为2011年8月20日。这套配置我想了1个星期。
如果你不玩超大型游戏(这个配置可以玩2011年的最新游戏!比如尘埃3啊,战锤40K啊,高配版高画质1280解析度,低配版中画质1024解析度),但是又不想太烂得3d能力的话,我推荐你买 amd athlon ii x2 215 的cpu 配790或者890主板,这个cpu和e5200差不多,显卡能力属于能打魔兽能玩dota水平,大型游戏(占5G硬盘以上的)其他就不行了。
可以的话,希望你把你的配置详细写出来!
最后给你两张图做参考。图里面没有的都是极其极其老的配件,买了只能做文本处理用。如果是文本处理,还不如直接买更便宜的……
函数指针强转尽量不要有,仅用于类型实际是相同的,但定义的变量类型不同,如
另一个程序员写了段代码,要求你提供一个函数指针,类型如下:
typedef int (ftype)(int,int);
但你写的函数是 unsigned int fun(unsigned int,unsigned int),参数一个有符号,一个无符号,在你知道符号不影响结果的情况下,可以强制转换。
分析:水仙花数是指:一个三位数,其各位数字立方和等于该数本身。例如:370=33+73+00这就说明370是一个水仙花数。
所以要判断一个三位数是不是水仙花数,得先取得这个三位数的的个位,十位和百位。
1:先取得他的百位:int BaiWei = x/100; 因为int是整形,所以不会进行四舍五入,也不会管小数点后面的数。
再取得十位:int ShiWei = (x-BaiWei100)/10;先用这个数减去百位数100,再除以10,原因同上。
最后取得个位数:int GeWei = x-BaiWei100-ShiWei10很明显,就能得到个位数。
2:
intb = x/100;
int s = x/100%10;
int g = x%10;
求立方的方法:
1,x = BaiweiBaiweiBaiwei+ShiWeiShiWeiShiWei+GeWeiGeWeiGeWei
2,Java提供求n次方的方法:javalangMathpow(a, b);其表示为a的b次方。
最后程序:
第一种:
public class ShuiXianHuaShu {
public static void main(String[] args) {
int x = 0; //定义水仙花数的个数
for(int i=100;i<=999;i++){
int b = i/100; //取得百位数
int s = (i-100b)/10; //取得十位数
int g = (i-s10-b100); //取得个位数
if(i==ggg+sss+bbb){
x++; //每次符合水仙花数条件,则x+1;
Systemoutprint(i+" "); //输出符合条件的数
}
}Systemoutprintln(); //换行
Systemoutprintln("水仙花数总共有"+x+"个"); //输出水仙花数的总数
}
}
第二种:
public class ShuiXianHuaShu {
public static void main(String[] args) {
int x = 0; //定义水仙花数的个数
for(int i=100;i<=999;i++){
int b = i/100; //取得百位数
int s = i%100/10; //取得十位数
int g = i%10; //取得个位数
if(i==Mathpow(b, 3) + Mathpow(s, 3) + Mathpow(g, 3)){
x++; //每次符合水仙花数条件,则x+1;
Systemoutprint(i+" "); //输出符合条件的数
}
}Systemoutprintln(); //换行
Systemoutprintln("水仙花数总共有"+x+"个"); //输出水仙花数的总数
}
}
两个函数不能同时用 C++不能通过返回值重载 这两个函数的区别是什么?
对于第一个 下面调用
x=9;
g(x)=8; 会将x赋于8
对于第二个
上面调用 编译不过去
这就是区别
欢迎分享,转载请注明来源:浪漫分享网
评论列表(0条)