user-0 提问: 呃```初学者求大神解惑，关于C语言变量和函数的问题

回复:
user: user-1
content: 初学者语法什么的都没搞清楚，搞个程序那么多错误，还不如实实在在多看点书。

user: user-2
content: 帮你修改了一些语法错误，看看吧！学会调试程序阿！  #include <stdio.h> #include <string.h>  char user[24]; char password[24]; void XTjiemian() {     printf("\n\n\n(按1注册帐号，按2登录系统，按0退出系统)\n\n\n");     printf("1.注册帐号        2.登录\n\n\n0.退出系统\n\n\n");     printf("请输入您要选择您要选择的操作: "); }  void QKjiemian() {     printf("\n\n\n请选择您需要取款的数目\n\n\n");     printf("1.100        2.200\n\n\n3.500        4.1000\n\n\n");     printf("本银行比较穷，最大只支持1000元的取款，谢谢您的谅解，就算您不谅解也没关系！");     printf("请输入您要选择的操作：\n"); } void CKjiemian(){     printf("\n\n\n请将钞票放入机器\n\n\n");     printf("请输入您的存款数目：\n"); } void GNjiemian(){     printf("\n\n\n请选择您需要进行的操作\n\n\n");     printf("1.存款        2.存款        3.存款        4.取款        5查询余额        0.退出\n\n\n");     printf("请输入您要选择的操作：\n");  } void DLuser(char *euser,char *epassword) {     int num = 0;     do{          printf("请输入您的帐号：\n");         fgets(euser,18,stdin);         printf("请输入您的密码：\n");         fgets(epassword,6,stdin);         if(strcmp(euser,user) == 0 && strcmp(epassword,password) == 0)         {                printf("登录成功！\n");             break;         }            else         {             num++;             printf("您的帐号或者密码输入错误！try again\n");             continue;         }     }while(num < 3);     if(num >= 3)     {         printf("three times error for try! your card hac clocked!\n");     }     else     {         GNjiemian();     } } int main() {     char euser[24] = {0};     char epassword[24] = {0};     int num = 0;     XTjiemian();     do{         scanf("%d",&num);         getchar();         switch(num)         {             case 0:                 printf("感谢使用本系统，欢迎下次再来！\n");                 break;             case 1:                 printf("请输入您要注册的帐号：\n");                 fgets(user,18,stdin);                 printf("请输入您要注册的密码(密码长度限制在6位)：\n");                 fgets(password,6,stdin);                 printf("您的帐号注册成功！\n");                 DLuser(euser,epassword);                 break;             case 2:                 DLuser(euser, epassword);                 break;         }     }while(num);     return 0; }

user: user-3
content: 一般做什么银行软件的 都需要错误处理机制 校验scanf返回值啊  还有错误恢复什么的 还有函数指针定义析构函数啊 留给用户处理的接口

user: user-4
content: 基本语法错误很多，建议先打好基础：  #include <stdio.h> #include <string.h>  char user[18]; char password[6]; void XTjiemian(){ printf("\n\n\n(按1注册帐号，按2登录系统，按0退出系统)\n\n\n"); printf("1.注册帐号        2.登录\n\n\n0.退出系统\n\n\n"); printf("请输入您要选择您要选择的操作"); }  void QKjiemian(){ printf("\n\n\n请选择您需要取款的数目\n\n\n"); printf("1.100        2.200\n\n\n3.500        4.1000\n\n\n"); printf("本银行比较穷，最大只支持1000元的取款，谢谢您的谅解，就算您不谅解也没关系！"); printf("请输入您要选择的操作：\n"); }  void CKjiemian(){ printf("\n\n\n请将钞票放入机器\n\n\n"); printf("请输入您的存款数目：\n"); }  void GNjiemian(){ printf("\n\n\n请选择您需要进行的操作\n\n\n"); printf("1.存款        2.存款        3.存款        4.取款        5查询余额        0.退出\n\n\n"); printf("请输入您要选择的操作：\n"); }   void DLuser(char *euser,char *epassword){ int num = 0; do{ printf("请输入您的帐号：\n"); fgets(euser,18,stdin); printf("请输入您的密码：\n"); fgets(epassword,6,stdin); if(strcmp(euser,user) == 0 && strcmp(epassword,password) == 0){ printf("登录成功！"); break; } else{ num++; printf("您的帐号或者密码输入错误！"); continue; } }while(num < 3); if(num >= 3){ return; } else{ GNjiemian(); printf("请选择您的操作：\n"); } }  int main(){ int num = 0; XTjiemian(); do{ scanf("%d",&num); switch(num){ case 0: printf("感谢使用本系统，欢迎下次再来！\n"); case 1: printf("请输入您要注册的帐号：\n"); fgets(user,18,stdin); printf("请输入您要注册的密码(密码长度限制在6位)：\n"); fgets(password,6,stdin); printf("您的帐号注册成功！\n"); DLuser(user,password); continue; case 2: DLuser(user,password); continue; } }while(num != 0); return 0; }  引用 楼主 u012527966 的回复:#include <stdio.h> #include <string.h>  char user; char password; void XTjiemian(){ 	printf("\n\n\n(按1注册帐号，按2登录系统，按0退出系统)\n\n\n"); 	printf("1.注册帐号        2.登录\n\n\n0.退出系统\n\n\n"); 	printf("请输入您要选择您要选择的操作"); }  void QKjiemian(){ 	printf("\n\n\n请选择您需要取款的数目\n\n\n"); 	printf("1.100        2.200\n\n\n3.500        4.1000\n\n\n"); 	printf("本银行比较穷，最大只支持1000元的取款，谢谢您的谅解，就算您不谅解也没关系！"); 	printf("请输入您要选择的操作：\n"); }  void CKjiemian(){ 	printf("\n\n\n请将钞票放入机器\n\n\n"); 	printf("请输入您的存款数目：\n"); }  void GNjiemian(){ 	printf("\n\n\n请选择您需要进行的操作\n\n\n"); 	printf("1.存款        2.存款        3.存款        4.取款        5查询余额        0.退出\n\n\n"); 	printf("请输入您要选择的操作：\n"); }   void DLuser(char *euser,char *epassword){ 	int num = 0; 	do{ 		printf("请输入您的帐号：\n"); 		fgets(euser,18,stdin); 		printf("请输入您的密码：\n"); 		fgets(epassword,6,stdin); 		if(strcmp(euser,user) == 0 && strcmp(epassword,password) == 0){ 			printf("登录成功！"); 			break; 		} 		else{ 			num++; 			printf("您的帐号或者密码输入错误！"); 			continue; 		} 	}while(num < 3); 	if(num >= 3){ 		return 0; 	} 	else{ 		GNjiemian(); 		printf("请选择您的操作：\n"); 	} }  int main(){ 	char euser,epassword; 	int num = 0; 	XTjiemian(); 	do{ 		scanf("%d",&num); 		switch(num){ 			case 0: 				printf("感谢使用本系统，欢迎下次再来！\n"); 			case 1: 				printf("请输入您要注册的帐号：\n"); 				fgets(user,18,stdin); 				printf("请输入您要注册的密码(密码长度限制在6位)：\n"); 				fgets(password,6,stdin); 				printf("您的帐号注册成功！\n"); 				DLjiemian(euser,epassword); 				continue; 			case 2: 				DLjiemian(euser,epassword); 				continue; 		} 	} }     老师说，要做一个模拟ATM的程序，我关于指针做参数那里实在是有点迷糊，老师也没讲清楚 结果写着写着一大堆错误 哪位大神告诉我哪里错了```````这是还没写完的，关于字符串行参有点不懂，求解释 能改一下错误的地方最好了，容易懂些，非常感谢非常感谢

user: user-5
content: 看你那么低的结贴率本不想回的.......  指针做参数一般在函数调用的时候用的多，字符串，数组，等一些需要修改的数据都要用到指针，以为指针传递就是地址传递这个区别于值传递，  void f(int *a), 比如这个就是用a 来接收传过来的int 数组,记住是一维数组，至于其他的话，自己多看看书吧