我发现了以下几个问题:
1,你的本意是想定义几个字符数组,来装这几个老鼠的名字。但是,你只定义了一个字符数组,说明只能装一个名字,所以是不行的。建议定义成二维的字符,如a[100][100],这样你就能装最多100个老鼠的名字了。
2,字符串的末尾是需要有'\0'作为结束标志的,而你的程序没有这一项,这也是不可以的,建议在定义的时候就初始化成0。
3,q=color[i];
color[i]=color[i+1];
color[i+1]=q;
这个地方,说明你对字符串这一块还不是很了解,建议找相关书籍看一下。字符串是不能直接这样相互复制的,需要调用strcpy函数。而且,你定义的q只是一个简单的字符,不是字符串,字符串是不能直接赋值给字符的,所以这个地方不对。q要定义字符串,比如q[100]。
由于我是定义了二维数组,所以此时color[i]不是第i个老鼠的名字,而是这个存放老鼠名字的首地址。
4,建议在输入前输入提示符,这样便于别人阅读和运行。我把我改的给你,你看看,也许还有问题,请你自己完善吧。。。
有什么不懂的,请追问。
#include <stdioh>
#include <stdlibh>
#include <stringh>
int main()
{ int a[100],p;
char color[10][100]={0},q[100]={0};
int n,i,k;
printf("How many numbers do you want to put in\n");
scanf("%d",&n);
printf("Please input the numbers and names:\n");
for(i=0;i<n;i++)
{
scanf("%d %s",&a[i],color[i]);
//gets(color[i]);
}
for(k=n-1;k>0;k--)
{
for(i=0;i<k;i++)
{
if(a[i]<a[i+1])
{ p=a[i];
a[i]=a[i+1];
a[i+1]=p;
strcpy(q,color[i]);
strcpy(color[i],color[i+1]);
strcpy(color[i+1],q);
}
}
}
for(i=0;i<n;i++)
{
printf("%d %s\n",a[i],color[i]);
}
return 0;
}
编程是好比是两个城市之间的旅程,开发语言(C++)就好比是交通工具,其实乘坐什么工具并不重要,最重要的是你要知道怎么走,也就是整个程序的设计你要明了。废话少说,下面简单介绍一下这个系统的开发流程:
第一步,先把数据库设计好,如果是单个银行网点,可以用ACCESS或者sqllite数据库,如果是某个银行集团的多个网点,那就需考虑用大型数据库了,比如Microsoft SQL Server;
数据库中最起码要包含以下几个表:
1,业务类型表:
2,取号类型表(普通号、优先号)
3,挂号表等
第二步,搭系统框架,这个是整个程序的基石,如果如果要自己设计的话,首先你要有两三年的编程经验,急不得。你可以去网上或者是学长那找一些好的模板,这样会快一点。
4,画界面
整个程序的界面包含主界面和一些基本数据的维护界面以及统计报表等,这个需要你一步一步去画。
5,基本的增删改查数据库 *** 作
界面画好之后,就要对基本数据进行处理了,程序的许多BUG也会在这个时候产生,这个也是基本功,祝你好运。
6,数据的增删改查做完之后整个程序的开发也就完成的差不多了,剩下的就是一下细节性的东西,不过此时你的旅途只完成了一半。
7,还有一半的工作就是测试测试再测试
若还有疑问,咨询HESIN排队。百度HESIN排队就可以。
package zhidao;
public class TestQueue {
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i = 100; i <200; i++) {
if(i%3 == 1 && i%4 == 2 && i%5 == 3) {
Systemoutprintln(i);
}
}
}
118 或者178人
}
import javautilArrayDeque;
import javautilArrayList;
import javautilDeque;
import javautilList;
import javautilStack;
public class DoctorMain implements Runnable
{
private static Deque<Integer> binRenDeque;
private boolean onWork = false;
private boolean isDoctor = true;
public static Integer binRenNumber = 0;
public DoctorMain()
{
Systemoutprintln("开始上班");
binRenDeque = new ArrayDeque<Integer>();
}
/
<br/>
<方法概述> <br/>
<方法详细概述> <br/>
<版本> <br/>
<作者>
@param args
/
public static void main(String[] args)
{
// TODO Auto-generated method stub
DoctorMain doctor=new DoctorMain();
doctorsetDoctor(true);
//上班了
doctorsetOnWork(true);
Thread th1=new Thread(doctor);
DoctorMain binRen=new DoctorMain();
binRensetDoctor(false);
binRensetOnWork(true);
Thread th2=new Thread(binRen);
th1start();
th2start();
try
{
Threadsleep(60000);
doctorsetOnWork(false);
binRensetOnWork(false);
}
catch (InterruptedException e)
{
// TODO Auto-generated catch block
eprintStackTrace();
}
}
@Override
public void run()
{
while (onWork)
{
try
{
//是医生还是病人
if (isDoctor)
{
// 医生给病人看病时间
Threadsleep(2000);
if (!binRenDequeisEmpty())
{
Integer number = binRenDequepollLast();
Systemoutprintln("医生正在给" + number + "号病人看病");
}
}
else
{
//病人来的间隔时间
Threadsleep((int)(Mathrandom()3000));
binRenNumber++;
Systemoutprintln("来了一个病人,号码是:"+binRenNumber);
binRenDequepush(binRenNumber);
}
//列出所有等待的病人
for(Integer bn:binRenDeque)
{
Systemoutprintln(bn+"号的病人在排队");
}
}
catch (InterruptedException e)
{
// TODO Auto-generated catch block
eprintStackTrace();
}
}
Systemoutprintln("医生下班了");
}
public static Deque<Integer> getBinRenStack()
{
return binRenDeque;
}
public static void setBinRenStack(Deque<Integer> binRenStack)
{
DoctorMainbinRenDeque = binRenStack;
}
public boolean isOnWork()
{
return onWork;
}
public void setOnWork(boolean onWork)
{
thisonWork = onWork;
}
public boolean isDoctor()
{
return isDoctor;
}
public void setDoctor(boolean isDoctor)
{
thisisDoctor = isDoctor;
}
public static Integer getBinRenNumber()
{
return binRenNumber;
}
public static void setBinRenNumber(Integer binRenNumber)
{
DoctorMainbinRenNumber = binRenNumber;
}
}
以上就是关于C语言编程问题:小白鼠排队全部的内容,包括:C语言编程问题:小白鼠排队、简单的银行叫号系统 C++编程、100多个人排队,3人一组多1人,4人一组多两人,5人一组多3人.问有 多少人java代码编程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)