
正文
c语言5x5函数 c语言中5%怎么表示
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
c语言 用5x5数组实现打印数字图形
#includestdio.h
void main(){//定义数字点阵
int zero[5][5]={1,1,1,1,1,
1,0,0,0,1,
1,0,0,0,1,
1,0,0,0,1,
1,1,1,1,1
}
int one[5][5]={0,0,1,0,0,
0,0,1,0,0,
0,0,1,0,0,
0,0,1,0,0,
0,0,1,0,0
}
int two[5][5]={1,1,1,1,1,
0,0,0,0,1,
1,1,1,1,1,
1,0,0,0,0,
1,1,1,1,1
}
int three[5][5]={1,1,1,1,1,
0,0,0,0,1,
1,1,1,1,1,
0,0,0,0,1,
1,1,1,1,1
}
int four[5][5]={1,0,0,0,1,
1,0,0,0,1,
1,1,1,1,1,
0,0,0,0,1,
0,0,0,0,1
}
int five[5][5]={1,1,1,1,1,
1,0,0,0,0,
1,1,1,1,1,
0,0,0,0,1,
1,1,1,1,1
}
int six[5][5]={1,1,1,1,1,
1,0,0,0,0,
1,1,1,1,1,
1,0,0,0,1,
1,1,1,1,1
}
int seven[5][5]={1,1,1,1,1,
0,0,0,1,0,
0,0,1,0,0,
0,0,1,0,0,
0,0,1,0,0
}
int eight[5][5]={1,1,1,1,1,
1,0,0,0,1,
1,1,1,1,1,
1,0,0,0,1,
1,1,1,1,1
}
int nine[5][5]={1,1,1,1,1,
1,0,0,0,1,
1,1,1,1,1,
0,0,0,0,1,
1,1,1,1,1
}
int temp = 0;//中间变量,用来存储输入的数字
printf("please input the number that you want display:");
while(1){//无限循环,可以多次输入,关掉程序即退出
scanf("%d",temp);//把输入值放入到中间变量中
DisplayNumber(temp);//调用函数
}
return;
}
void DisplayNumber(int b){//显示数字点阵函数
switch(b){
case 0:
show(zero);
break;
case 1:
show(one);
break;
case 2:
show(two);
break;
case 3:
show(three);
break;
case 4:
show(four);
break;
case 5:
show(five);
break;
case 6:
show(six);
break;
case 7:
show(seven);
break;
case 8:
show(eight);
break;
case 9:
show(nine);
break;
}
}
void show(int **c){//数组显示数字之精髓在此
for(int i=0;i 5;i++){//外层循环,控制行数
for(int j=0;j 5;j++){//内层循环,控制列数
if(c[i][j])//如果是1,就打印*
printf("*");
else
printf(" ");//如果是0,就打印一个空格
}
printf("\n");//每一行打完了打换行
}
printf("display completed!\n");//最后提示打完了,可以继续输入
}
相关问答
Q1: C语言 怎么写出5X5行的数组 要求如下?
题目是5x5数组,写成程序必须具有通用型,代码通过改行列常量,实现任意大小矩阵求对角线。
通过对角线元素下标关系,可以获得所有对角线元素地址,并存放在指针数组中返回。
通过元素地址与首地址差值及列数运算得其位置。
注意:最大值存在多个相同元素,只返回找到的第一个元素位置。
25个元素我直接用随机数填充数组,你需要手动输入,在我标注的地方写scanf语句。
在输出所有对角线元素那里,中心元素被打印了2次(正反对角线算了2次),但不影响本题目,(地址运算),这题不需要打印所有对角线元素,你可直接把打印所有元素的那个函数注销掉,或者加一个中心地址判断。
#includestdio.h
#includestdlib.h
#includetime.h
#define MRC 5//数组最大行列数
void pArrInfo(int a[][MRC]);
int **getP(int a[][MRC]);
int main()
{
int i=MRC*MRC,a[MRC][MRC],*p=a[0][0],**pa=NULL;
int sum=0,z,y,max,*mp=NULL;
srand(time(NULL));
while(i--)
*p=rand()%99+1,p++;//1~99 随机数填充数组,你想手动输入,在这里写scanf函数
max=a[0][0];
pArrInfo(a);
pa=getP(a);
printf("所有对角线的元素为:\n");
i=MRC+MRC;
while(i--)
{
printf("%d ",**pa);
sum+=**pa;
if(max**pa)
max=**pa,mp=*pa;
pa++;
}
printf("\n对角线元素总和为:%d\n",sum);
z=mp-a[0][0]+1;//第几个元素
y=(mp-a[0][0]+1)%MRC;//整除列数后余数
printf("其中最大值是%d,位置是第%d行第%d列\n",max,y0?z/MRC+1:z/MRC,y0?y:MRC);
return 0;
}
void pArrInfo(int a[][MRC])
{
int i,j;
for(i=0;iMRC;i++,printf("\n"))
for(j=0;jMRC;j++)
printf("%2d ",a[i][j]);
}
int **getP(int a[][MRC])
{
static int *pa[MRC+MRC];
int i,j,k=0;
for(i=0;iMRC;i++)//正向对角线
for(j=0;jMRC;j++)
if(i==j)
pa[k++]=a[i][j];
for(i=MRC-1;i=0;i--)//反向对角线
for(j=0;jMRC;j++)
if((MRC-1)-i==j-0)
pa[k++]=a[i][j];
return pa;
}
Q2: C语言:创建一个5x5二维数组,使周边元素值为1,其余元素值为0,并显示在屏幕上,咋写?
代码文本c语言5x5函数:
#include "stdio.h"
int main(int argc,char *argv[]){
char a[5][5],i,j;
for(i=0;i5;i++){
for(j=0;j5;j++)
printf("%d ",a[i][j]=i==0 || j==0 || i==4 || j==4);
putchar('\n');
}
return 0;
}
Q3: C语言:编写程序读取一个5X5的整数数组,然后显示出每行的和与每列的和
#include stdio.h
void main(){
int i,j,a[5][5],s=0;
for(i=0;i5;i++)
for(j=0;j5;j++)
scanf("%d",a[i][j]);
for(i=0;i5;i++){
for(j=0;j5;j++)
s+=a[i][j];
printf("第%d行的和:%d\n",i+1,s);
s=0;
}
for(j=0;j5;j++){
for(i=0;i5;i++)
s+=a[i][j];
printf("第%d列的和:%d\n",j+1,s);
s=0;
}
}
Q4: 用C语言编写一个不超过5×5维的矩阵相乘函数
其实你直接定义一个5x5的二维数组就可以了,2乘2,3乘3或者4乘4的矩阵都是它的子集,这样用户想用几乘几就用几乘几呀,再说不用指针是无法定义非定长的数组的,这是C语言的语法,没法改变的。
进一步说,现在C语言中指针几乎都不用了,用指针写程序很容易会造成未知错误,因此现在流行的Java语言中已经把指针类型剔除了。个人经验认为,你直接定义数组即可;int a[5][5];
Q5: c语言:利用函数形式实现5x5的星号,要求函数只能打印一个星号
#include stdio.h
#include stdlib.h
void printfStar(int m,int n);
int main()
{
printStar(24,5);
return 0;
}
void printStar(int m,int n)
{
printf("*");
if(m%n==0) {
printf("\n");
}
if(m0) {
printStar(--m,n);
}
}
打码不容易望采纳谢谢。。。
c语言5x5函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言中5%怎么表示、c语言5x5函数的信息别忘了在本站进行查找喔。







