A. 经典c语言程序100例第一题
#include <stdio.h>
main()
{
int i,j,k;
printf("\n");
for(i=1;i<5;i++)
for(j=1;j<5;j++)
for(k=1;k<5;k++)
{
if(i!=k&&i!=j&&j!=k)
printf("%d,%d,%d\n",i,j,k);
}
}
vc木有错
B. 跪求!!!!!!!!!!!!!!!!最简单的C语言程序 需要100个语句
#include <string.h>
#include <stdio.h>
#include <math.h>
unsigned int i,l1,l2,k,l,num1,num2,num,result,t1,t2,t,co,power;
unsigned int a[100];int b[100];int c[100];
char s1[100];char s2[100];char s[100];char r[100];
char op[2];
void initial();
void origco();
void judge_sub();
void judge_dif();
void output();
int main(void)
{ initial();
origco();
if (op[0] == '+')
judge_sub();
else if (op[0] == '-')
judge_dif();
output();
system("pause");
}
void initial()
{
scanf("%s",s1);
scanf("%s",op);
scanf("%s",s2);
l1=strlen(s1);
l2=strlen(s2);
num1=num2=0;
t1=t2=0;
}
void origco()
{
if (s1[0]=='-')
{
t1=1;
s1[0]='0';
}
if (s2[0]=='-')
{
t2=1;
s2[0]='0';
} //negtive numbers
for (i=0;i<l1;i++)
num1=num1*10+s1[i]-'0';
for (i=0;i<l2;i++)
num2=num2*10+s2[i]-'0';
printf("%d %c %d\n",num1,op[0],num2); //得到两个数
i=1;
num=num1;
while (num1>0)
{
a[i]=num1%2;
num1=num1/2;
i=i+1;
}
num1=num;
l1=i;
i=1;
num=num2;
while (num2>0)
{
b[i]=num2%2;
num2=num2/2;
i=i+1;
}
l2=i;
num2=num;
if (l1>l2) l=l1;
else l=l2;
b[l]=t2;
a[l]=t1; //得到10进制原码
for (i=l1;i<l;i++)
a[i]=0;
for (i=l2;i<l;i++)
b[i]=0;
for (i=l;i>0;i--)
printf("%d",a[i]);
printf("\n");
for (i=l;i>0;i--)
printf("%d",b[i]);
printf("\n"); //2进制原码
}
void output ()
{
if (co>0)
printf("%d",co);
for (i=l-1;i>0;i--)
printf("%d",c[i]);
printf("\n");
// if (t==1) printf("-");
// printf("%d\n",result);
k=0;
while (result>0)
{
k=k+1;
r[k]=result%10+'0';
result=result/10;
}
// printf("%d",result);
for (i=1;i<=k;i++)
s[i]=r[k-i+1];
s[k+1]='\0';
if (t==1) s[0]='-';
else s[0]='+';
printf("%s",s);
}
void judge_sub()
{
co=0;
if (t1==t2)
{
for (i=1;i<l;i++)
{
c[i]=a[i]+b[i]+co;
if (c[i]>=2)
{
c[i]=c[i]-2;
co=1;
}
else co=0;
}
t=t1;
//if (co==1) printf("overflow");
}
else
if (num1>num2)
{
for (i=1;i<l;i++)
{
c[i]=a[i]-b[i]-co;
if (c[i]<0)
{
c[i]=c[i]+2;
co=1;
}
else co=0;
}
t=t1;
//if (co==1) printf("overflow");
}
else
{
for (i=1;i<l;i++)
{
c[i]=-a[i]+b[i]-co;
if (c[i]<0)
{
c[i]=c[i]+2;
co=1;
}
else co=0;
}
//if (co==1) printf("overflow");
t=t2;
}
c[l]=t;
result=0;
power=1;
for (i=1;i<l;i++)
{
result=result+c[i]*power;
power=power*2;
}
if (co>0) result=result+co*power;
if (co>0)
printf("overflow\n");
printf("%d",t);
}
void judge_dif()
{
co=0;
if (t1==t2)
{
if (num1>=num2)
{
for (i=1;i<l;i++)
{
c[i]=a[i]-b[i]-co;
if (c[i]<0)
{
c[i]=c[i]+2;
co=1;
}
else co=0;
}
t=t1; //if (co==1) printf("overflow");
}
else if(num1 < num2)
{
for (i=1;i<l;i++)
{
c[i]=-a[i]+b[i]-co;
if (c[i]<0)
{
c[i]=c[i]+2;
co=1;
}
else co=0;
}
//if (co==1) printf("overflow");
t = !t1;
}
}
else
{
for (i=1;i<l;i++)
{
c[i]=a[i]+b[i]+co;
if (c[i]>=2)
{
c[i]=c[i]-2;
co=1;
}
else co=0;
}
t=t1;
//if (co==1) printf("overflow");
}
c[l]=t;
result=0;
power=1;
for (i=1;i<l;i++)
{
result=result+c[i]*power;
power=power*2;
}
if (co>0) result=result+co*power;
if (co>0)
printf("overflow\n");
printf("%d",t);
}
C. C语言100行的程序,要自己写的 谢谢. 所有分全给了.
这是我写的贪吃蛇,楼主看行不行?不行换一个
#include<stdio.h>
#include<conio.h>
#include<time.h>
#include<windows.h>
int length=1;//蛇的当前长度,初始值为1
int line[100][2];//蛇的走的路线
int head[2]={40,12};//蛇头
int food[2];//食物的位置
char direction;//蛇运动方向
int x_min=1;x_max=77; y_min=2; y_max=23;//设置蛇的运动区域
int tail_before[2]={40,12};//上一个状态的蛇尾
char direction_before='s';//上一个状态蛇的运动方向
int live_death=1;//死活状态,0死,1活
int eat_flag=0;//吃食物与否的状态。0没吃 1吃了
int max=0;
int delay;//移动延迟时间
void gotoxy(int x, int y)//x为列坐标,y为行坐标
{
COORD pos = {x,y};
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hOut, pos);
}
void hidden()//隐藏光标
{
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO cci;
GetConsoleCursorInfo(hOut,&cci);
cci.bVisible=0;//赋1为显示,赋0为隐藏
SetConsoleCursorInfo(hOut,&cci);
}
void update_score()
{
gotoxy(2,1);
printf("我的分数:%d",length);
gotoxy(42,1);
printf("最高记录:%d",max);
}
void create_window()
{
gotoxy(0,0);
printf("╔══════════════════╦═══════════════════╗");
printf("║ ║ ║");
printf("╠══════════════════╩═══════════════════╣");
printf("║ ║");
printf("║ ║");
printf("║ ║");
printf("║ ║");
printf("║ ║");
printf("║ ║");
printf("║ ║");
printf("║ ║");
printf("║ ║");
printf("║ ║");
printf("║ ║");
printf("║ ║");
printf("║ ║");
printf("║ ║");
printf("║ ║");
printf("║ ║");
printf("║ ║");
printf("║ ║");
printf("║ ║");
printf("║ ║");
printf("╚══════════════════════════════════════╝");
}
void update_line()
{
int i;
if(eat_flag==0)//吃了食物就不用记住上一个状态的蛇尾,否则会被消掉
{
tail_before[0]=line[0][0];//记住上一个状态的蛇尾
tail_before[1]=line[0][1];
for(i=0;i<length-1;i++)//更新蛇头以后部分
{
line[i][0]=line[i+1][0];
line[i][1]=line[i+1][1];
}
line[length-1][0]=head[0];//更新蛇头
line[length-1][1]=head[1];
}
}
void initial()
{
FILE *fp;
gotoxy(head[0],head[1]);
printf("蛇");
line[0][0]=head[0];//把蛇头装入路线
line[0][1]=head[1];
if((fp=fopen("highest","r"))==NULL)
{
fp=fopen("highest","w");
fprintf(fp,"%d",0);
max=0;
fclose(fp);
}//第一次使用时,初始化奖最高分为0
else
{
fp=fopen("highest","r");
fscanf(fp,"%d",&max);
}
update_score();
}
void createfood()
{
int flag,i;
srand((unsigned)time(NULL));
for(;;)
{
for(;;)
{
food[0]=rand()%(x_max+1);
if(food[0]%2==0 && food[0]>x_min)
break;
}//产生一个偶数横坐标
for(;;)
{
food[1]=rand()%(y_max);
if(food[1]>y_min)
break;
}
for(i=0,flag=0;i<length;i++)//判断产生的食物是否在蛇身上,在flag=1,否则为0
if(food[0]==line[i][0] && food[1]==line[i][1])
{ flag=1; break; }
if(flag==0)// 食物不在蛇身上 结束循环
break;
}
gotoxy(food[0],food[1]);
printf("蛇");
}
void show_snake()
{
gotoxy(head[0],head[1]);
printf("蛇");
if(eat_flag==0)//没吃食物时消去蛇尾
{
gotoxy(tail_before[0],tail_before[1]);
printf(" ");//消除蛇尾
}
else
eat_flag=0;//吃了食物就回到没吃状态
}
char different_direction(char dir)
{
switch(dir)
{
case 'a': return 'd';
case 'd': return 'a';
case 'w': return 's';
case 's': return 'w';
}
}
void get_direction()
{
direction_before=direction;//记住蛇上一个状态的运动方向
while(kbhit()!=0) //调试
direction=getch();
if( direction_before == different_direction(direction) || (direction!='a' && direction!='s' && direction!='d' && direction!='w') ) //新方向和原方向相反,或获得的方向不是wasd时,保持原方向
direction=direction_before;
switch(direction)
{
case 'a': head[0]-=2; break;
case 'd': head[0]+=2; break;
case 'w': head[1]--; break;
case 's': head[1]++; break;
}
}
void live_state()//判断蛇的生存状态
{
FILE *fp;
int i,flag;
for(i=0,flag=0;i<length-1;i++)//判断是否自己咬到自己
if( head[0]==line[i][0] && head[1]==line[i][1])
{
flag=1;
break;
}
if(head[0]<=x_min || head[0]>=x_max || head[1]<=y_min || head[1]>=y_max || flag==1)
{
system("cls");
create_window();
update_score();
gotoxy(35,12);
printf("游戏结束!\n");
Sleep(500);
live_death=0;
fp=fopen("highest","w");
fprintf(fp,"%d",max);//保存最高分
}
}
void eat()
{
if(head[0]==food[0]&&head[1]==food[1])
{
length++;
line[length-1][0]=head[0];//更新蛇头
line[length-1][1]=head[1];
eat_flag=1;
createfood();
if(length>max)
max=length;
update_score();
if(delay>100)
delay-=30;//加速
}
}
main()
{
int x=0,y=0;
int i;
hidden();//隐藏光标
create_window();
initial();
createfood();
for(direction='s',delay=600;;)
{
get_direction();
eat();
update_line();
live_state();//判断生死状态
if(live_death==1)
{
show_snake();
}
else
break;
Sleep(delay);
}
}
这是在VC6.0环境下运行的,如果你用的TC,我可以帮你改成TC环境下运行的
D. 经典C语言程序设计100例
兄弟,你这源程序里好多错误的
我才学的程序设计,都看出来了...
虽然里面好多东西看不懂,但少点原括号,花括号还是懂的...
E. C语言经典100例问题,取一个整数a从右端开始的4~7位,求助,高分!
移位操作是按二进制算的, 右移 一下相当于除2,左移乘2,说以10进制的不能通过移位实现取位,2,8,16进制的都可以哦。
不过还是有办法,就是用16进制变量存你的10进制变量,然后按16进制移位取位,最后按16进制输出,可达到你想要的效果哦~
我要上课去了,如代码还是写不出来,追问一下,我回来帮你写个
F. C语言1-100求和程序跟每一句程序的解释,就是大学c语言最基础的那种程序
1+2+3+.......+100?就是循环累加,就可以了
#include<stdio.h>
intmain()
{
inti,n=100,sum=0;//n是最大累加值。sum是累加结果
for(i=1;i<n;i++)
{
sum=sum+i;//i从1到100自增,每次累加到变量sum中
printf("%d+",i);
}
sum=sum+n;
printf("%d=%d
",n,sum);
return0;
}