c语言程序设计案例。要100行左右的。。核心代码50行左右,可以在TC上运行的。拜谢了,,,

可以是一个小游戏或者类似成绩管理什么的。要带注释的,100行左右的,可以在TC上运行的,,,核心代码是50行左右的。。拜谢了。。。最好在月底前。。。。
第一个回答的大哥,你的这个错误比我自己写的都多。。。。。

第1个回答  2010-06-28
/*猜数字游戏(宾果游戏) 不懂的上网搜*/

#include <stdio.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>

void covert_charArray_to_intArray(int n[],char c[])
{
int i;

for(i = 0;i<4;i++)
{
c[i]=n[i]+'0';
}
c[i]='\0';
return;
}

void make_new_number(int number[])//生成一个新的数字
{
int i = 0;
int j;
int flag;

srand((int)time(0));
while(i < 4)
{
flag = 1;
number[i]=(int)(10.0*rand()/(RAND_MAX+1.0));
j = 0;

while(j < i+1)
{
if((number[j] == number[i]) && (i != j))
{
flag = 0;
break;
}
j++;
}

if(flag == 1)
{
i++;
}
}

}

int judge(char cnum[], char usrinput[] ,int ab[])//判断猜的是否对
{
int i,j;

for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
if(cnum[i] == usrinput[j])
{
if(i == j)
ab[0]++;
else
ab[1]++;

}

}

}

return 0;
}

int inputjudge(char usrinput[])//输入检查
{
int i,j;
//printf("%s\n",usrinput);

if((usrinput[5] != 0))
{
return 0;
}

for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
if((usrinput[j] < '0') || (usrinput[j] > '9'))
{
return 0;
}
if((usrinput[i]== usrinput[j]) && (i != j))
{
return 0;
}
}

}

return 1;
}

int main()
{
int guesstimes=0;//猜的次数
int number[4];//电脑生成数字
char cnum[8];//正确答案
char usrinput[8];//用户输入
int flag = 0;
int ab[2];//AB

while(1)
{
make_new_number(number);
covert_charArray_to_intArray(number,cnum);
guesstimes=0;

while(flag == 0)
{
ab[0] = 0;
ab[1] = 0;
guesstimes++;

printf("this is %d times you guess,plz input:" , guesstimes);

while(1)//用户输入,输入不符合要求不占用猜的次数
{
memset(usrinput, 0, sizeof(usrinput));
fgets(usrinput , 5,stdin);
getchar();
if(inputjudge(usrinput) == 0)
{
printf("input error!plz input again:");
continue;
}
else
{
break;
}
}

judge(cnum, usrinput ,ab);
printf("%dA%dB\n",ab[0],ab[1]);

if(ab[0] == 4)//正确
{
printf("GOOD!\n");
printf("the answer is:%d%d%d%d\n",\
number[0],number[1],number[2],number[3]);
break;
}
else if(guesstimes >= 8)//猜过8次不正确,退出
{
printf("the answer is:%d%d%d%d\n",\
number[0],number[1],number[2],number[3]);
break;
}

}
}

}
第2个回答  2010-07-01
额、、问德好难吖!下面是个C++代码。估计你会用上,呵呵。~!~
#include "stdio.h"
#include "stdlib.h"
class Student
{
public:
int id;
int eng;
int math;
int computer;
double avg;
double total;
Student(){id=-1;eng=-1;;math=-1;computer=-1;avg=-1;total=-1;};
double Aveage()
{
return avg=(double)(eng+math+computer)/(double)3;
};
double Sum()
{
return total=(double)(eng+math+computer);
};
};
void EX(Student*A,Student*B)//排序
{
Student temp;
temp=*A;
*A=*B;
*B=temp;
}
void PX(Student* A,int s)
{
Student* R=new Student[s];
for(int i=0;i<s;i++)
{
for(int j=i+1;j<s;j++)
{
if((A+i)->avg<(A+j)->avg)
EX(A+i,A+j);
}
}
};
void main()
{
int s=-1;
printf("请输入学生个数\n");
scanf("%d",&s);
Student *all=new Student[s];
printf("eng,math,computer\n");
for(int i=0;i<s;i++)
{
scanf("%d %d %d",&(all+i)->eng,&(all+i)->math,&(all+i)->computer);//输入以空格为间隔以回车为确定
(all+i)->Aveage();(all+i)->Sum();(all+i)->id=i+1;
}
PX(all,s);
printf("ID,eng,math,computer,avg,total\n");
for(int j=0;j<s;j++)
{
printf("%d,%d,%d,%d,%2.2f,%d\n",(all+j)->id,(all+j)->eng,(all+j)->math,(all+j)->computer,(all+j)->avg,(all+j)->total);
}
}
第3个回答  2010-06-28
下面是个C++代码。估计你会用上,呵呵。~!~
#include "stdio.h"
#include "stdlib.h"
class Student
{
public:
int id;
int eng;
int math;
int computer;
double avg;
double total;
Student(){id=-1;eng=-1;;math=-1;computer=-1;avg=-1;total=-1;};
double Aveage()
{
return avg=(double)(eng+math+computer)/(double)3;
};
double Sum()
{
return total=(double)(eng+math+computer);
};
};
void EX(Student*A,Student*B)//排序
{
Student temp;
temp=*A;
*A=*B;
*B=temp;
}
void PX(Student* A,int s)
{
Student* R=new Student[s];
for(int i=0;i<s;i++)
{
for(int j=i+1;j<s;j++)
{
if((A+i)->avg<(A+j)->avg)
EX(A+i,A+j);
}
}
};
void main()
{
int s=-1;
printf("请输入学生个数\n");
scanf("%d",&s);
Student *all=new Student[s];
printf("eng,math,computer\n");
for(int i=0;i<s;i++)
{
scanf("%d %d %d",&(all+i)->eng,&(all+i)->math,&(all+i)->computer);//输入以空格为间隔以回车为确定
(all+i)->Aveage();(all+i)->Sum();(all+i)->id=i+1;
}
PX(all,s);
printf("ID,eng,math,computer,avg,total\n");
for(int j=0;j<s;j++)
{
printf("%d,%d,%d,%d,%2.2f,%d\n",(all+j)->id,(all+j)->eng,(all+j)->math,(all+j)->computer,(all+j)->avg,(all+j)->total);
}
}本回答被网友采纳
相似回答