小子初来乍到,C语言功底甚是微毫,恐见笑于大方之家,然献此毫末技艺,还望见谅。
本程序用到的是标准输入输出库,window库和字符操作库,所要实现的功能是显示一个矩阵,指定位置,将所要更改的数进行替换,而后显示替换后的矩阵。有个彩蛋(滑稽)。
主函数打印一个带边框的4*4方阵,成员全部为1,随后清屏并请求按格式输入一个数字,对该数取余,对if条件判断,不符合则开始执行分函数,符合则输出“牛”并结束。
分函数没有返回值,定义一阶ask数组和temp指针,随后使用if条件判断限定行列,一旦不符合,函数将重新退回分函数开头。若符合,则须输入行与列,再输入想置换的数字,而后就会置换指定位置的数字。(注:如果行列数据输入错误或格式错误,将会出现错误提醒,而后重新返回分函数开始处,重复流程。)
#include<stdio.h>
#include<windows.h>
#include<string.h>
void fun(int pask[4][4])
{
int m,n,k,t,*temp=&t; //定义行列和数字指针
int d[10]={1,2,3,4,5,6,7,8,9,0};
printf("请输入指定行列:");
scanf("%d,%d",&m,&n); //输入行列
printf("请输入置换数字:");
scanf("%d",&k); //输入置换数字
if((m>=0&&m<=3)&&(n>=0&&n<=3)&&(k>=0&&k<=9))
{
*temp=d[k-1];
pask[m-1][n-1]=*temp;
d[k-1]=pask[m-1][n-1]; //输入数与原位置数替换
}
else
{
printf("错误请重试!\n"); //错误报告
fun(pask); //调用从函数
}
}
int main()
{
printf("||====================================||\n");
printf("||");
int i,j,b;
int ask[4][4]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
for(i=0;i<=3;i++)
for(j=0;j<=3;j++)
{
printf(" %d ",ask[i][j]);
if((j%3==0)&&(j!=0))printf("||\n||"); //分行打印矩阵
}
printf("====================================||\n");
Sleep(3000); //睡眠
system("cls"); //清屏
printf("请输入数字:\n");
scanf("%d",&b); //判断条件入口
if((b%3)<1)printf("牛!\n");
else fun(ask);
printf("||====================================||\n");
printf("||");
for(i=0;i<=3;i++)
for(j=0;j<=3;j++)
{
printf(" %d ",ask[i][j]);
if((j%3==0)&&(j!=0))printf("||\n||"); //分行打印矩阵
}
printf("====================================||\n");
Sleep(3000); //睡眠
return 0;
虽然我也不知道这个代码能拿去干啥,我敲着玩的,随意随意啦。
作者:一将功成天下平