c语言account函数 account 用法及例句

c语言 怎样把循环变成递归函数

#includestdio.h

创新互联公司是一家集成都做网站、成都网站建设、成都外贸网站建设、网站页面设计、网站优化SEO优化为一体的专业网站制作公司,已为成都等多地近百家企业提供网站建设服务。追求良好的浏览体验,以探求精品塑造与理念升华,设计最适合用户的网站页面。 合作只是第一步,服务才是根本,我们始终坚持讲诚信,负责任的原则,为您进行细心、贴心、认真的服务,与众多客户在蓬勃发展的市场环境中,互促共生。

int account_next(int a[][8], int m, int n)

{

// 列索引n执行+1,即进入下一列

if (-1 = n  n != 8)

n++;

// 当列索引n至最后一列时(n=8),行索引m执行+1,即进入下一行

else if (-1 = m  m != 8)

{

n = 0;

m++;

}

// 当行索引=8时,说明已经遍历全部元素

else

return 0;

if (0 = m  m  8  0 = n  n  8  a[m][n] == 0)

{

// 计数a[m][n]左、右、上、下、左上、左下、右上、右下1的个数

int c = 0;

// left

if (0  n  1 == a[m][n - 1]) c++;

// right

if (7  n  1 == a[m][n + 1]) c++;

// up

if (0  m  1 == a[m - 1][n]) c++;

// down

if (7  m  1 == a[m + 1][n]) c++;

// left up

if (0  m  0  n  1 == a[m - 1][n - 1]) c++;

// left down

if (7  m  0  n  1 == a[m + 1][n - 1]) c++;

// right up

if (0  m  7  n  1 == a[m - 1][n + 1]) c++;

// right down

if (7  m  7  n  1 == a[m + 1][n + 1]) c++;

printf("a[ %d ][ %d ] 周围有 %d 个1.\n", m, n, c);

}

// 计数a[m][n]下一个元素

account_next(a, m, n);

}

int main(void)

{

int a[8][8] = {

{ 1, 1, 1, 1, 1, 1, 1, 1 },

{ 1, 1, 0, 0, 1, 0, 0, 1 },

{ 1, 0, 0, 1, 0, 0, 1, 1 },

{ 1, 1, 1, 0, 0, 1, 0, 1 },

{ 1, 0, 1, 1, 1, 0, 0, 1 },

{ 1, 1, 0, 0, 0, 1, 1, 1 },

{ 1, 1, 1, 1, 0, 0, 0, 1 },

{ 1, 1, 1, 1, 1, 1, 1, 1 } };

account_next(a, 0, -1);

return 0;

}

一道c语言 题目望大虾帮助

我的课程设计和你的类似,但我用的是文本形式,没关系,你只需要修改存储类型就可以了.放心绝对可以运行!

#include stdio.h

#include conio.h

#include ctype.h

#includeiostream.h

#include string.h

#define PF printf

#define SIZE 20/*成员人数上限*/

#include stdlib.h

int count=0;/*用于存储已有的成员个数*/

int num=0;/*用于存储此时登陆成员的编号*/

struct family/*定义结构体*/

{ int user;/*账号*/

char mima[10];/*密码*/

char name[20];/*姓名*/

int income;/*收入*/

int payout;/*支出*/

int total;/*余额*/

}people[SIZE];

void menu()/*普通成员菜单*/

{

PF(" ******************************%s ,欢迎您登陆******************************\n",people[num].name);

PF(" 1. 创建新用户 \n");

PF(" 2. 查询本人收支情况 \n");

PF(" 3. 查询其他成员收支情况 \n");

PF(" 4. 查询收支排行 \n");

PF(" 5. 修改自己的信息 \n");

PF(" 6. 修改密码 \n");

PF(" 0. 返回登陆界面 \n");

}

void MAXmenu()/*最高特权者菜单*/

{

PF(" ******************************%s,欢迎您登陆******************************\n",people[num].name);

PF(" 1. 创建新用户 \n");

PF(" 2. 查询本人收支情况 \n");

PF(" 3. 查询其他成员收支情况 \n");

PF(" 4. 查询收支排行 \n");

PF(" 5. 修改自己的信息 \n");

PF(" 6. 修改密码 \n");

PF(" 7. 删除用户(只能删除成员) \n");

PF(" 0. 返回登陆界面 \n");

}

void openf()/*打开文件,并以结构体存在内存中*/

{ count=0;

int c;

FILE *fp;

fp=fopen("family_list5.txt","r");

PF("已存在账号 密码 姓名\n");

while( !feof(fp) )/*输出已存在账号和密码,姓名*/

{

fscanf(fp,"%d %s %s %d %d %d",people[count].user,people[count].mima,people[count].name,people[count].income,people[count].payout,people[count].total);

printf("%10d%15s%15s\n",people[count].user,people[count].mima,people[count].name);

count++;

}fclose(fp);

printf("count为:%d",count);/*用于测试count是否正确*/

}

void save()/*存储成文件*/

{

FILE *fp;

int i=0;

if((fp=fopen("family_list5.txt","w"))==NULL)

{

printf("不能打开文件\n");

return;

}

for(i=0;icount-1;i++)

{ fprintf(fp,"%d %s %s %d %d %d\n",people[i].user,people[i].mima,people[i].name,people[i].income,people[i].payout,people[i].income-people[i].payout);}

fprintf(fp,"%d %s %s %d %d %d",people[i].user,people[i].mima,people[i].name,people[i].income,people[i].payout,people[i].income-people[i].payout);

/*由于循环最后有‘\n’不能将最后一行也置于循环中,否则文件将多一行乱码*/

fclose(fp);/*关闭文件*/

}

void newuser()/*创建新用户函数*/

{ FILE *fp;

int i=count; PF("请输入新用户信息:");

if((fp=fopen("family_list5.txt","a"))==NULL)/*以追加的形式打开文件*/

{

printf("不能打开文件\n");

return;

}

PF("请输入账号名:");

scanf("%d",people[i].user);

PF("请输入密码:"); fflush(stdin);/*清除键盘缓冲区*/

scanf("%s",people[i].mima);

PF("请输入您的姓名:"); fflush(stdin);/*同上*/

scanf("%s",people[i].name);

PF("请输入您的月收入:"); fflush(stdin);

scanf("%d",people[i].income);

PF("请输入您的月支出:"); fflush(stdin);

scanf("%d",people[i].payout);

fprintf(fp,"\n%d %s %s %d %d %d",people[i].user,people[i].mima,people[i].name,people[i].income,people[i].payout,people[i].income-people[i].payout);

fclose(fp);

PF("恭喜您,创建成功!\n");

}

void user()/*输入账号函数*/

{

int i,b;

PF("请输入账号:");

scanf("%d",b);

for(i=0;icount;i++)

if(b==people[i].user) {num=i;}/*核心算法,顺序查找符合输入值的账号*/

}

int password()/*密码输入函数*/

{ char c;

char mima[10];PF("%s",people[num].mima);PF("请输入密码(以回车结束):");

loop: int i=0;

while((c=getch())!='\r') /*输入值只要不为回车则循环*/

{

if(c =='\b' i==0)/*如果按BACKSPACE并且之前没有输入任何值*/

{

putchar(7);/*发出鸣叫*/

}

else if(c == '\b')/*如果按BACKSPACE*/

{ mima[--i]=c; PF("\b \b"); }//覆盖上一个‘*’

else if(i10)//密码范围小于10则输出‘*’

{putchar('*');

mima[i]=c;

i++;

}

if(i=10)

{PF("\n密码输入超出范围,请重新输入:");

goto loop;/*重新输入,返回此函数开头*/

}

} mima[i]='\0';/*定义密码结束标准*/

if(strcmp(mima,people[num].mima)==0) {return(1);}/*如果密码正确返回函数值1*/

else/*否则重新输入密码*/

{system("cls");/*清屏*/

PF("\n密码错误!请重新输入:");

goto loop;

return(0);

}

}

void PXTO()/*对余额排序*/

{

int n=count;/*n赋值为结构体个数*/

struct family *p;/*定义结构体指针*/

struct family t;/*定义另一个结构体,用于暂时存储数据,起到交换目的*/

openf();/*打开文件*/

system("cls");/*清屏*/

p=people;

int i=0,j,k;

while(in)/*当i结构体个数时执行循环*/

{

for(j=i+1;jn;j++)/*用选择法对余额排序*/

{

if(((p+j)-total)((p+i)-total))

{t.user=(p+i)-user;strcpy(t.mima,(p+i)-mima);strcpy(t.name,(p+i)-name);t.income=(p+i)-income;t.payout=(p+i)-payout;t.total=(p+i)-total;

(p+i)-user=(p+j)-user;strcpy((p+i)-mima,(p+j)-mima);strcpy((p+i)-name,(p+j)-name);(p+i)-income=(p+j)-income;(p+i)-payout=(p+j)-payout;(p+i)-total=(p+j)-total;

(p+j)-user=t.user;strcpy((p+j)-mima,t.mima);strcpy((p+j)-name,t.name);(p+j)-income=t.income;(p+j)-payout=t.payout;(p+j)-total=t.total;

}

}

i++;

}

PF("******************************节余排行榜**********************************\n");

PF("名次 姓名 节余\n");

if(num==0||num==1)/*如果是最高特权者,则能看见全部信息*/

{for(k=0;kn;k++)

PF("\n%5d%10s%15d\n",k+1,(p+k)-name,(p+k)-total);

}else/*如果不是最高特权者,只能看见成员信息*/

{

for(k=2;kn;k++)/*最高特权者是0和1号分别是爸爸妈妈*/

PF("\n%5d%10s%15d\n",k-1,(p+k)-name,(p+k)-total);

}

}

void PXIN()/*对收入排序*/

{

int n=count;/*n赋值为结构体个数*/

struct family *p;/*定义结构体指针*/

struct family t;/*定义另一个结构体,用于暂时存储数据,起到交换目的*/

openf();/*打开文件*/

system("cls");/*清屏*/

p=people;int i=0,j,k;

while(in)/*当i结构体个数时执行循环*/

{

for(j=i+1;jn;j++)/*用选择法对收入排序*/

{

if(((p+j)-income)((p+i)-income))

{t.user=(p+i)-user;strcpy(t.mima,(p+i)-mima);strcpy(t.name,(p+i)-name);t.income=(p+i)-income;t.payout=(p+i)-payout;t.total=(p+i)-total;

(p+i)-user=(p+j)-user;strcpy((p+i)-mima,(p+j)-mima);strcpy((p+i)-name,(p+j)-name);(p+i)-income=(p+j)-income;(p+i)-payout=(p+j)-payout;(p+i)-total=(p+j)-total;

(p+j)-user=t.user;strcpy((p+j)-mima,t.mima);strcpy((p+j)-name,t.name);(p+j)-income=t.income;(p+j)-payout=t.payout;(p+j)-total=t.total;

}

}

i++;

}

PF("******************************收入排行榜**********************************\n");

PF("名次 姓名 收入 \n");

if(num==0||num==1)/*如果是最高特权者,则能看见全部信息*/

{

for(k=0;kn;k++)

PF("\n%5d%10s%15d\n",k+1,(p+k)-name,(p+k)-income,(p+k)-payout);

}

else

{for(k=2;kn;k++)/*如果不是最高特权者,只能看见成员信息*/

PF("\n%5d%10s%15d\n",k-1,(p+k)-name,(p+k)-income,(p+k)-payout);

}/*最高特权者是0和1号分别是爸爸妈妈*/

}

void PXPAY()/*对支出排序*/

{

int n=count;/*一下同理*/

struct family *p;

struct family t;

openf();

system("cls");

p=people;int i=0,j,k;

while(in)

{

for(j=i+1;jn;j++)

{

if(((p+j)-payout)((p+i)-payout))

{t.user=(p+i)-user;strcpy(t.mima,(p+i)-mima);strcpy(t.name,(p+i)-name);t.income=(p+i)-income;t.payout=(p+i)-payout;t.total=(p+i)-total;

(p+i)-user=(p+j)-user;strcpy((p+i)-mima,(p+j)-mima);strcpy((p+i)-name,(p+j)-name);(p+i)-income=(p+j)-income;(p+i)-payout=(p+j)-payout;(p+i)-total=(p+j)-total;

(p+j)-user=t.user;strcpy((p+j)-mima,t.mima);strcpy((p+j)-name,t.name);(p+j)-income=t.income;(p+j)-payout=t.payout;(p+j)-total=t.total;

}

}

i++;

}

PF("******************************支出排行榜**********************************\n");

PF(" 名次 姓名 支出\n");

if(num==0||num==1)

{for(k=0;kn;k++)

PF("\n%5d%10s%15d\n",k+1,(p+k)-name,(p+k)-payout);

}

else

{for(k=2;kn;k++)

PF("\n%5d%10s%15d\n",k-1,(p+k)-name,(p+k)-payout);

}

}

int returnm()/*返回主菜单函数*/

{

PF("按0返回主菜单");

char c;

c=getch();/*从键盘得到一个字符*/

if(c=='0') {return(1);}/*如果是0则返回1*/

else

return(0);/*否则返回0*/

}

void phmemu()/*排序菜单*/

{

char c;

loop:PF(" 1.查询收入排行 \n");

PF(" 2.查询支出排行 \n");

PF(" 3.查询余额排行 \n");

PF(" 0.返回上级菜单 \n");

c=getch();

switch(c)/*选择功能*/

{

case '1': system("cls");PXIN();if(returnm()==1){ system("cls");goto loop;}else break;

/*清屏,调用收入排序函数*/

case '2': system("cls");PXPAY();if(returnm()==1){ system("cls");goto loop;}else break;

/*清屏,调用支出排序函数*/

case '3': system("cls");PXTO();if(returnm()==1){ system("cls");goto loop;}else break;

/*清屏,调用余额排序函数*/

case '0': break;

default: break;

}

}

void look()/*查询其他成员的情况*/

{int k;

openf();/*打开文件*/

system("cls");

struct family *p;/*定义结构体指针方便打字*/

p=people;

PF("账号 姓名 收入 支出 节余\n");

if(num==0||num==1)/*如果是最高特权者则可以看见所以信息*/

{

for(k=0;kcount;k++)

PF("\n%5d%10s%15d%15d%15d\n",k+1,(p+k)-name,(p+k)-income,(p+k)-payout,(p+k)-total);

}

else/*如果是普通成员,只能看见普通成员的信息*/

{

for(k=2;kcount;k++)

PF("\n%5d%10s%15d%15d%15d\n",k-1,(p+k)-name,(p+k)-income,(p+k)-payout,(p+k)-total);

}

}

void lookmy()/*查询自己的信息*/

{system("cls");

PF("账号 姓名 收入 支出 节余\n");

PF("%5d%10s%15d%15d%15d\n",people[num].user,people[num].name,people[num].income,people[num].payout,people[num].total);

}

void changemima()/*修改密码*/

{

char xmima[10];char c;

//一下这段是调用变*用法

PF("请输入新密码:");

loop: int i=0;

while((c=getch())!='\r')

{

if(c =='\b' i==0)

{

putchar(7);

}

else if(c == '\b')

{ xmima[--i]=c; PF("\b \b"); }

else if(i10)

{putchar('*');

xmima[i]=c;

i++;

}

if(i=10)

{PF("\n密码输入超出范围,请重新输入:");

goto loop;

}

} xmima[i]='\0';

//变*用法结束

strcpy(people[num].mima,xmima);/*将新密码赋值给内存中当前用户的密码*/

save();/*此函数需要修改*/

PF("\n密码修改成功!\n");

}

void changeinfromation()/*修改个人信息*/

{

lop:PF(" 1.修改收入 \n");

PF(" 2.修改支出 \n");

PF(" 3.修改姓名 \n");

PF(" 0.返回主菜单 \n");

int in,out;

char xname[20];

char c;

c=getch();

switch(c)

{

case'1':system("cls");PF(" 1.请输入收入(按回车键结束):");scanf("%d",in);people[num].income=in;save();system("cls");goto lop;

case'2':system("cls");PF(" 1.请输入支出(按回车键结束):");scanf("%d",out);people[num].payout=out;save();system("cls");goto lop;

case'3':system("cls");PF(" 1.请输入姓名(按回车键结束):");scanf("%s",xname);strcpy(people[num].name,xname);save();system("cls");goto lop;

/* case'0':returnm()*/

}

}

void deletezh()/*删除用户*/

{

int zh,i,j;FILE *fp;

PF("请输入需要删除的账户名:");

scanf("%d",zh);

for(i=0;icount;i++)

{ if(zh==people[i].user icount-1 i1)

{

fp=fopen("family_list5.txt","w");

for(j=0;ji;j++)

{fprintf(fp,"%d %s %s %d %d %d\n",people[j].user,people[j].mima,people[j].name,people[j].income,people[j].payout,people[j].income-people[j].payout);}

for(j=j+1;jcount-1;j++)

{fprintf(fp,"%d %s %s %d %d %d\n",people[j].user,people[j].mima,people[j].name,people[j].income,people[j].payout,people[j].income-people[j].payout);}

fprintf(fp,"%d %s %s %d %d %d",people[j].user,people[j].mima,people[j].name,people[j].income,people[j].payout,people[j].income-people[j].payout);/*将最后一行单独赋值,以免多一个\n*/

}

else if(zh==people[i].user i==count-1)

{

fp=fopen("family_list5.txt","w");

for(j=0;ji-1;j++)

{fprintf(fp,"%d %s %s %d %d %d\n",people[j].user,people[j].mima,people[j].name,people[j].income,people[j].payout,people[j].income-people[j].payout);}

fprintf(fp,"%d %s %s %d %d %d",people[j].user,people[j].mima,people[j].name,people[j].income,people[j].payout,people[j].income-people[j].payout);/*将最后一行单独赋值,以免多一个\n*/

}else {PF("删除对象错误!不能删除特权用户!");goto lp;}

}PF("删除成功!");

lp: fclose(fp);

}

void main()

{ char c;

openf();

lop:user();

if(password()==1num1)

{system("cls");menu();

loop:c=getch();

switch(c)

{

case '0':system("cls");goto lop;

case '1':system("cls");newuser();if(returnm()==1){ system("cls");menu();goto loop;}

case '2':lookmy();if(returnm()==1){ system("cls");menu();goto loop;}else break;

case '3':system("cls");look();if(returnm()==1){ system("cls");menu();goto loop;}else break;

case '4':openf();system("cls");phmemu(); system("cls");menu();goto loop;

case '5':system("cls");changeinfromation();system("cls");menu();goto loop;

case '6':system("cls");changemima();if(returnm()==1){ system("cls");menu();goto loop;}else break;

default: break;

}

}

else

{system("cls");MAXmenu();

lp:c=getch();

switch(c)

{

case '0':system("cls");goto lop;

case '1':system("cls");newuser();if(returnm()==1){ system("cls");menu();goto lp;}

case '2':lookmy();if(returnm()==1){ system("cls");menu();goto lp;}else break;

case '3':system("cls");look();if(returnm()==1){ system("cls");menu();goto lp;}else break;

case '4':openf();system("cls");phmemu(); system("cls");menu();goto lp;

case '5':system("cls");changeinfromation();system("cls");menu();goto lp;

case '6':system("cls");changemima();if(returnm()==1){ system("cls");menu();goto lp;}else break;

case '7':system("cls");MAXmenu();deletezh();

default: break;

}

}

}

C语言如何用函数输入输出二维数组

#include stdio.h

int a[10][10];

int main()

{

int i , j;

//input data

for( i = 0; i 10; i++)//多少行

{

for(j = 0; j 10; j++)//多少列

{

scanf("%d", a[i][j]);//输入第i行j列的值

}

}

//ouput data

for( i = 0; i 10; i++)

{

for(j = 0; j 10; j++)

{

printf("%d ",a[i][j]);

}

}

return 0;

}


本文题目:c语言account函数 account 用法及例句
网站URL:http://scyanting.com/article/dociges.html