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;
}