| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 399 人关注过本帖
标题:[求助]在函数中遇到的问题~
只看楼主 加入收藏
van101984
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-7-21
收藏
 问题点数:0 回复次数:2 
[求助]在函数中遇到的问题~
#include "string.h"
int n;
void sort(int NUM[10],char NAME[10][50]);
void main()
{
char NAME[10][50];
int i=0,d,NUM[10];
while (1)
{
//n=i;
printf("1--input\n");
printf("2--sort\n");
printf("3--seek\n");
printf("4--exit\n");
printf("Please input 1--4:");
scanf("%d",&d);
if (d==1)
{
printf("INPUT:\n");
printf("input code,name:");
scanf("%d,%s",&NUM[i],NAME[i]);
{
if (i>9)
{
for (i=0;i<=9;i++)
{
printf("limited!");
}
}
else
{
i++;
n=i;
}
}
}
if (d==2)
{
printf("SORT:\n");
sort(NUM,NAME);
}
if (d==3)
{
printf("SEEK:\n");
printf("Please input a code:");
}
if (d==4)
{
printf("EXIT.\n");
break;
}
}
}
void sort(int NUM[10],char NAME[10][50])
{
int x,y,t;
char str[10][50];
for (x=0;x<=n-1;x++)
for(y=0;y<=n-x;y++)
{
if (NUM[y]>NUM[y+1])
{
t=NUM[y];
NUM[y]=NUM[y+1];
NUM[y+1]=t;
strcpy(str[10],NAME[y]);
strcpy(NAME[y],NAME[y+1]);
strcpy(NAME[y+1],str[10]);
}
}
for(y=0;y<=n-1;y++)
{
printf("%d-->%s\n",NUM[y],NAME[y]);
}
}
以上两个函数一个是输入还有一个是排序,但是都有问题。输入是有的时候输入编号3,名字为h或者j是就陷入了死循环。排序就是前面总是出现好多烫字!!
希望达人们帮小弟解决下!!感激不尽!!
搜索更多相关主题的帖子: 函数 
2007-07-21 20:15
vbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:352
专家分:147
注 册:2006-12-30
收藏
得分:0 
有些事要自己做了之后才会深有感触,你自己试着调试一下吧.

清远鹏程万里人才网:[url=http://www.]http://www.[/url]zq.,qy.
2007-07-27 23:16
wengjinxin
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2007-7-17
收藏
得分:0 

陷入死循环可能是你的程序结构没设计得好,
至于出现很多个烫字是因为你没有对数组进行初使化

下面是我修改之后的程序,你看一下,有什么问题可以继续讨论

#include <string.h>
#include <stdio.h>
#define N 10

void sort(int num[N],char name[N][50]);
void input(int num[N],char name[N][50]);
void seek(int num[N],char name[N][50]);

void main()
{
char name[N][50]={0};
int d,num[N]={0};
while (1)
{
clrscr(); /*清屏函数*/
printf("1--input\n");
printf("2--sort\n");
printf("3--seek\n");
printf("4--exit\n");
printf("****************************************\n");
printf("Please input 1--4:");
scanf("%d",&d);
switch(d)
{
case 1: input(num,name);break;
case 2:sort(num,name);break;
case 3:seek(num,name);break;
case 4:exit(0);
default:printf("error\n");
}
}
}

/*输入函数*/
void input(int num[N],char name[N][50])
{
int i;

for(i=0;i<N;i++)
{
printf("\ninput the %d code and name:",i+1);
scanf("%d,%s",&num[i],name[i]);
}
}


/*排序函数*/
void sort(int num[N],char name[N][50])
{
int x,y,t;
char str[50]; /*这个地方只要定义一维数组就行了*/

for (x=0;x<N;x++)
for(y=0;y<N-x-1;y++)
{
if (num[y]>num[y+1])
{
t=num[y];
num[y]=num[y+1];
num[y+1]=t;
strcpy(str,name[y]);
strcpy(name[y],name[y+1]);
strcpy(name[y+1],str);
}
}
for(y=0;y<=N-1;y++)
{
printf("%d-->%s\n",num[y],name[y]);
}
printf("press any key to continue.\n\n");
getchar();getchar();
}

/*查看函数*/
void seek(int num[N],char name[N][50])
{
int i;

for(i=0;i<N;i++)
{
printf("%d-->%s\n",num[i],name[i]);
}
printf("press any key to continue.\n\n");
getchar();getchar();
}

2007-07-28 03:39
快速回复:[求助]在函数中遇到的问题~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.046190 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved