freopen c语言 编程-freopen函数只读入文件得一部分

问题描述

freopen函数只读入文件得一部分

设有n个人围坐一圈并按顺时针方向从1到n编号,从第1个人开始进行1到m的报数,报数到第个m人,此人出圈,再从他的下一个人重新开始1到m的报数,如此进行下去直到所剩下一人为止。
Input

输入多行,每行2个数,分别表示n和m.
Output

计算每一行中最后剩下这个人的编号.
我的代码:
#include
#include
int main(void)
{
int n, m;
int i;
struct link
{
int number;
struct link *next;
};
struct link * head = NULL, * p = NULL, * pr;
freopen("1.txt", "r", stdin);
while(scanf("%d %d", &n, &m) != EOF)
{
for(i=n; i>0; i--)
{
p = (struct link *)malloc(sizeof(struct link));
p->number = i;
p->next = head;
head = p;
}
for( ; ; )
{
if(p->next == NULL)
{
p->next = head;
break;
}
else
{
p = p->next;
}
}
p = head;
if(m>=2)
{
while(p->next != p)
{
for(i=0; i
{
p = p->next;
}
pr = p->next;
p->next = pr->next;
p = pr->next;
free(pr);
}
printf("%dn", p->number);
free(p);
}
else
{
printf("%dn", n);
}
}
return 0;
}
文件内容: 50 3
5 11
程序结果:
11

解决方案

读取完了,但是你写的不对,把之前的冲掉了。

解决方案二:

第二次循环时, head没有清零

时间: 2024-12-03 07:19:46

freopen c语言 编程-freopen函数只读入文件得一部分的相关文章

语言编程 使用函数-C语言编程(使用函数)

问题描述 C语言编程(使用函数) 编写一个程序,其功能是将用户输入的一段英文(注意包含空格.逗号.句号及英文字母)分离出单词,并以每个单词出现的次数从高到低输出单词及其次数,次数相同的单词以其对应字符串大小升序输出.(使用函数) 解决方案 http://zhidao.baidu.com/link?url=cvC7aAt1csYj4nG1yDnsX4HJ7Kf5Vxfhe5iJHE4CGfgV62Gx04h86aNwgyFDFpB5oWpMJPS2ktQ7P-7NLP7H6a 解决方案二: htt

C语言编程中函数的基本学习教程_C 语言

C 语言中的函数等价于 Fortran 语言中的子程序或函数,也等价于 Pascal 语言中的过程或函数.函数为计算的封装提供了一种简便的方法,此后使用函数时不需要考虑它是如何实现的.使用设计正确的函数,程序员无需考虑功能是如何实现的,而只需知道它具有哪些功能就够了.在 C 语言中可以简单.方便.高效地使用函数.我们经常会看到在定义后仅调用了一次的短函数,这样做可以使代码段更清晰易读. 到目前为止,我们所使用的函数(如 printf.getchar 和 putchar 等)都是函数库中提供的函数

Linux系统中C语言编程创建函数fork()执行解析_C 语言

最近在看进程间的通信,看到了fork()函数,虽然以前用过,这次经过思考加深了理解.现总结如下: 1.函数本身 (1)头文件 #include<unistd.h> #include<sys/types.h> (2)函数原型 pid_t fork( void); (pid_t 是一个宏定义,其实质是int 被定义在#include<sys/types.h>中) 返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程ID:否则,出错返回-1 (3)函数说明 一

语言编程-宏函数定义问题(谢谢各位,可是没有悬赏。。。)

问题描述 宏函数定义问题(谢谢各位,可是没有悬赏...) 问大家一个问题: struct example { int bin; int pin; }; 定义宏函数: #define assign_struct(s, a, b) s->bin = a; s->pin = b 主函数: struct example ex_struct; assign_struct(ex_struct, 1, 2); 会报"Error:表达式必须包含指针类型",是什么原因啊? 解决方案 http

《R语言编程艺术》——1.3 函数入门

1.3 函数入门 和大多数编程语言一样,R语言编程的核心是编写"函数".函数就是一组指令的集合,用来读取输入.执行计算.返回结果.我们先定义一个函数oddcount(),以此简单介绍函数的用法.这个函数的功能是计算整数向量中奇数的个数.一般情况下,我们会用文本编辑器编写好函数代码并保存在文件中,不过在这个简单粗略的例子中,我们只需要在R的交互模式中一行行输入代码.接下来,我们还会在几个测试案例中调用这个函数: 首先,我们告诉R想定义一个名为oddcount的函数,该函数有一个参数x.左

函数调用-C语言编程题,插入求和函数,排序函数。么有错误,但结果不对!

问题描述 C语言编程题,插入求和函数,排序函数.么有错误,但结果不对! 定义一个包括学号.姓名及三门课的成绩和总分的结构体,利用该结构体说明一个包含五个人的结构体数组.从键盘输入五个人的基本信息.计算总分,并根据总分排序输出一个成绩单! 解决方案 show us the code加个断点调试吧看看每次排序后的顺序是否如预期结果 解决方案二: 这个代码也没贴出来,怎么知道问题出在哪里 解决方案三: 复 6楼 newdos#include void shuru(void);void qiuhepai

《C语言编程——零基础初学者指南(第3版)》一2.2 main()函数

2.2 main()函数 C语言编程--零基础初学者指南(第3版)C程序中最重要的部分是main()函数.前面讨论的两个程序中都有main()函数.main()是一个C函数,不是C命令.现在还不需要区分它们.函数是执行某些任务的例程.C程序由一个或多个函数组成.每个程序必须包含一个main()函数,除此之外,有些函数是你创建的.函数与命令的区别在于,函数名后紧跟一对圆括号.以下所示都是函数: main() calcIt() printf() strlen() 而这些都是命令: return wh

C语言编程中从密码文件获取数据的函数总结_C 语言

C语言getpw()函数:取得指定用户的密码文件数据头文件: #include <pwd.h> #include <sys/types.h> 定义函数: int getpw(uid_t uid, char *buf); 函数说明:getpw()会从/etc/passwd中查找符合参数uid所指定的用户账号数据, 找不到相关数据就返回-1. 所返回的buf 字符串格式如下: 账号:密码:用户识别码(uid):组识别码(gid):全名:根目录:shell 返回值:返回 0 表示成功,

《R语言编程艺术》——3.3 对矩阵的行和列调用函数

3.3 对矩阵的行和列调用函数 *apply()函数系列是R中最受欢迎同时也是最常用的,该函数系列包括apply().tapply()和lapply().这里我们主要介绍apply().apply()函数允许用户在矩阵的各行或各列上调用指定的函数.3.3.1 使用apply()函数以下是apply()函数的一般形式: 参数解释如下:m 是一个矩阵.dimcode 是维度编号,若取值为1代表对每一行应用函数,若取值为2代表对每一列应用函数.f是应用在行或列上的函数.fargs是f的可选参数集.例如