| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 995 人关注过本帖
标题:没有输入就直接跳过 咋回事
只看楼主 加入收藏
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:13 
没有输入就直接跳过 咋回事
程序代码:
#include<stdio.h>
#include<string.h>
#define N 2

struct workman
{
  char name[10];
  float num;
}work[N];

void getdate()
{
int i;
printf("please input the name and number\n");
for(i=0;i<N;i++)

 scanf("%s%f",work[i].name,&work[i].num);
}

void arrange()
{
  int i,j,n,t;
  char a[10];
  for(i=0;i<N;i++)
    { t=i;
       for(j=i;j<N;j++)
          if(work[t].num>work[j].num)
                     t=j;
      n=work[i].num; work[i].num=work[t].num; work[i].num=n;
     strcpy(a,work[i].name); strcpy(work[i].name,work[t].name); strcpy(work[t].name,a);
     work[i].name[strlen(work[i].name)]='\0';
     work[i].name[strlen(work[t].name)]='\0';
    }
}
int main()
{
int i;
float t;
arrange();
getdate();


printf("the arranged array is\n");
for(i=0;i<N;i++)
  printf("%-8s%.0f\n",work[i].name,work[i].num);


printf("please input the workman's number\n");
scanf("%f",&t);

for(i=0;i<N;i++)
  if(t==work[i].num)
      printf("%s\n",work[i].name);
      return 0;
}
输出有错误  且第二个scanf好像没执行
搜索更多相关主题的帖子: color 
2011-05-30 07:28
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:1 
int i,j,n,t;   //n应定义为float
2011-05-30 07:43
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
收藏
得分:0 
这样还是不行  为什么都这么不积极呢唉
2011-05-30 12:50
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
收藏
得分:0 
以后都快不想再发了  没人回答的滋味
2011-05-30 12:50
ab6326795
Rank: 2
等 级:论坛游民
帖 子:91
专家分:56
注 册:2010-11-8
收藏
得分:0 
我也遇到过了哦,我写结构体得时候,for循环输入时当我输入一个字符串后下面的int age直接跳过,居然没发输入了??
2011-05-30 12:59
诸葛修勤
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:549
专家分:1955
注 册:2010-10-28
收藏
得分:0 
改成lf
2011-05-30 13:03
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
哪里跳过了?

My life is brilliant
2011-05-30 13:03
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:3 
测试一下格式
程序代码:
#include "list.h"

///    文件:list_impl.c
/// 功能:实现链表的基本操作
/// 作者:bluewind
/// 完成时间:2011.5.29
/// 修改时间:
/// --------------------------------------------------------------

/// --------------------------------------------------------------
//    函数名:list_init
//    功能:链表初始化
//    参数:无
//  返回值:已初始化链表指针
//  备注:链表本身动态分配,由list_destroy函数管理释放
/// --------------------------------------------------------------
List list_init(void)
{
    List list = (List) malloc(sizeof(struct clist));
    if(list != NULL)                    //内存分配成功
    {
        list->head = NULL;                //初始化头节点
        list->size = 0;
    }
    return list;
}

/// --------------------------------------------------------------
//    函数名:list_add_node
//    功能:添加链表结点
//    参数:l--链表指针,data--链表数据指针,可为任意类型
//  返回值:int型,为1表示添加成功,为0表示添加失败
//  备注:如果链表本身为空或是分配节点内存失败,将返回0
/// --------------------------------------------------------------
int    list_add_node(List l, void *data)
{
    Node temp = (Node) malloc(sizeof(node));
   
    if(l != NULL && temp != NULL)        //链表本身不为空,且内存申请成功
    {
        temp->data = data;
        temp->next = NULL;
       
        if(l->head == NULL)                //如果头节点为空
        {
            l->head = temp;
        }
        else
        {
            Node cur = l->head;            //后插节点法
            while(cur->next != NULL)    //找到最后一个节点
            {
                cur = cur->next;
            }
            cur->next = temp;
        }
        l->size ++;                        //链表元素总数加1
        return 1;
    }
    return 0;
}

/// --------------------------------------------------------------
//    函数名:list_delete_node
//    功能:删除链表结点
//    参数:l--链表指针,data--链表数据指针,可为任意类型
//          *pfunc为指向一个数据类型比较的函数指针
//  返回值:int型,为1表示删除成功,为0表示没有找到匹配数据
//  备注:*pfunc函数接口参数ndata为节点数据,data为比较数据,返回为真表示匹配数据
/// --------------------------------------------------------------
int    list_delete_node(List l, void *data, int (*pfunc)(void *ndata, void *data))
{
    int count = 0;
    Node curr = l->head;                //当前节点
    Node prev = l->head;                //前一个节点
   
    while(curr != NULL)
    {
        if(pfunc(curr->data, data))        //如果找到匹配数据
        {
            if(count == 0)                //如果是头节点
            {
                Node q = prev->next;    //保存第二个节点
                free(curr->data);        //释放头节点数据
                free(curr);                //释放头节点
                l->head = q;            //重设头指针指向第二个节点
            }
            else
            {
                prev->next = prev->next->next;    //非头节点时修改上一个节点中next指针指向下下个节点
                free(curr->data);                //释放头节点数据
                free(curr);                        //释放头节点
            }
            l->size--;                    //链表元素总数减1
            return 1;                    //返回真值
        }

        if(count > 0)                    //如果不是头节点,前节点指向下一个
            prev = prev->next;            //如是是头节点,前节点不变

        curr = curr->next;                //当前节点指向下一个
        count++;
    }
   
    return 0;                            //没有找到匹配数据
}

/// --------------------------------------------------------------
//    函数名:list_destroy
//    功能:释放链表
//    参数:l--链表指针
//  返回值:int型,为1表示释放成功,为0表示链表本身为空指针
/// --------------------------------------------------------------
int list_destroy(List l)
{
    if(l != NULL)
    {
        Node temp;
        while(l->head != NULL)
        {
            temp = l->head->next;
           
            free(l->head->data);        //先释放节点数据(但是节点数据里也有指针?)
            free(l->head);                //再释放节点
           
            l->head = temp;
        }
        free(l);                        //释放链表本身占用空间
        return 1;
    }
    return 0;
}

我们都在路上。。。。。
2011-05-30 13:07
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:2 
这边好象可以完整的再现内容。。。不错。
程序代码:
#ifndef LIST_H_H
#define LIST_H_H

#include <stdio.h>
#include <malloc.h>

typedef struct cnode
{
    void *data;
    struct cnode *next;
}node, *Node;

typedef struct clist
{
    Node head;
    unsigned int size;
}list, *List;

//初始化链表
List    list_init(void);   
int        list_add_node(List l, void *data);   
int        list_delete_node(List l, void *data, int (*pfunc)(void *ndata, void *data));
//释放链表
int        list_destroy(List l);
#endif




[ 本帖最后由 hellovfp 于 2011-5-30 13:11 编辑 ]

我们都在路上。。。。。
2011-05-30 13:09
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
收藏
得分:0 
回复 7楼 lz1091914999
第二个输入直接跳过就结束了
2011-05-30 15:11
快速回复:没有输入就直接跳过 咋回事
数据加载中...
 
   



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

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