一 设计一个猜数字游戏,即系统随机出一个0-100的整数,用户输入数字,提示输出大还是小,超过4次则为用户失败,游戏结束后询问用户是否下一轮。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void game()
{
int x,n,i=0;
n=rand()%100+1;
for(i=0;i<4;i++)
{
scanf("%d",&x);
if(x<n)
printf("小\n");
if(x>n)
printf("大\n");
if(x==n)
{
printf("正确\n");
break;
}
}
if(i>3)
{
printf("失败\n");
}
}
int main()
{
int m;
do
{
game();
printf("是否继续:(1:继续,0:结束)\n");
scanf("%d",&m);
} while(m!=0);
printf("游戏结束!");
}
四
1.
使用
C
语言编写十进制,二进制,八进制,十六进制之间的相互转换。(封装成函数,
plus
版本:如果
传递字符串怎么转换)
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
void fun1(int n)
{
if(n/2)
fun1(n/2);
putchar('0'+n%2);
}
void fun2(int n)
{
if(n/8)
fun2(n/8);
putchar('0'+n%8);
}
void fun3(int n)
{
if(n/16)
fun3(n/16);
int i = n%16;
if(i<10)
putchar('0'+i);
else
putchar('a'+i-10);
}
int fun4(char *str)
{
int num = 0;
while(*str != '\0')
{
int i = *str-'0';
if(i>=0 && i<=1)
num = num*2+i;
str++;
}
return num;
}
int fun5(char *str)
{
int num = 0;
while(*str != '\0')
{
int i = *str-'0';
if(i>=0 && i<8)
num = num*8+i;
str++;
}
return num;
}
int fun6(char *str)
{
int num = 0;
while(*str != '\0')
{
char ch = *str;
if(ch>='0' && ch<='9')
num = num*16+ch-'0';
if(ch>='a' && ch<='f')
num = num*16+10+ch-'a';
str++;
}
return num;
}
int main()
{
int i,j,num;
char ch,*s;
scanf("输入%d进制";&i);
if(i==2)
{
scanf("%s",ch);
*s=&ch;
num=fun4(*s);
}
if(i==8)
{
scanf("%s",ch);
*s=&ch;
num=fun5(*s);
}
if(i==16)
{
scanf("%s",ch);
*s=&ch;
num=fun6(*s);
}
scanf("输出%d",&j);
if(i==2)
{
scanf("%s",ch);
*s=&ch;
fun1(num);
} if(i==6)
{
scanf("%s",ch);
*s=&ch;
fun2(num);
} if(i==16)
{
scanf("%s",ch);
*s=&ch;
fun3(num);
}
if(i==10)
{
printf(%d,num);
}
}
五
1.
给两个相同大小的
n*n
二维矩阵,计算矩阵相加相减相乘,并且计算出每个矩阵中的鞍点,也就是行为
最大值,列为最小值。
#include<stdio.h>
int main()
{
int a[n][n] = { };
int b[n][n] = { };
int c[n][n] = { 0 };
int i = 0;
int j = 0;
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
scanf("%d %d",&a[i][j],&b[i][j])
}
}
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
c[i][j]=a[i][j]+b[i][j];
}
if(i==n-1&&j=0)
printf("%d",c[i][j]);
}
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
c[i][j]=a[i][j]-b[i][j];
}
if(i==n-1&&j=0)
printf("%d",c[i][j]);
}
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
c[i][j]=a[i][j]*b[i][j];
}
if(i==n-1&&j=0)
printf("%d",c[i][j]);
}
}