C语言:根据形参c中指定的英文字母,按顺序打印出若干后继相邻字母,-主函数中放入一个带头节点的链表结构中,h指向链表的头节点。fun函数找出学生的最高分-使用插入排序法对字符串中的字符进行升序排序。-从文件中找到指定学号的学生数据,读入次学生数据,
//根据形参c中指定的英文字母,按顺序打印出若干后继相邻字母,输出字母的大小与形参c一致,数量由形参d指定。例如:输入c为Y,d为4,则输出ZABC。
#include <stdio.h>
#pragma warning (disable:4996)
void fun(char c, int d) {
int i;
char A[], a[], *ptr;
/**********found**********/
for (i=; i<; i++) {
A[i] = 'A' + i;
a[i] = 'a' + i;
}
/**********found**********/
if ((c >= 'a') && (c<= 'z')) ptr = a;
else ptr = A;
/**********found**********/
for (i=; i<=d; i++) printf("%c", ptr[(c-ptr[]+i) % ] );
}
main( ) {
char c; int d;
printf("please input c & d:\n");
scanf("%c%d", &c, &d);
fun(c, d);
}
//N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。fun函数找出学生的最高分,返回。
#include <stdio.h>
#include <stdlib.h>
#define N 8
struct slist
{ double s;
struct slist *next;
};
typedef struct slist STREC;
double fun( STREC *h )
{
STREC *p, *q;
double max;
p = h;
q = h->next;
max = q->s;
while (q != NULL)
{
p = q;
q = q->next;
if (p->s > max) max = p->s;
}
return max;
} STREC * creat( double *s)
{ STREC *h,*p,*q; int i=;
h=p=(STREC*)malloc(sizeof(STREC));p->s=;
while(i<N)
{ q=(STREC*)malloc(sizeof(STREC));
q->s=s[i]; i++; p->next=q; p=q;
}
p->next=;
return h;
}
void outlist( STREC *h)
{ STREC *p;
p=h->next; printf("head");
do
{ printf("->%2.0f",p->s);p=p->next;}
while(p!=);
printf("\n\n");
}
void main()
{ double s[N]={,,,,,,,}, max;void NONO ();
STREC *h;
h=creat( s ); outlist(h);
max=fun( h );
printf("max=%6.1f\n",max);
NONO();
}
void NONO ()
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *in, *out ;
int i,j ; double s[N],max;
STREC *h ;
in = fopen("in.dat","r") ;
out = fopen("out.dat","w") ;
for(i = ; i < ; i++) {
for(j= ; j < N; j++) fscanf(in, "%lf,", &s[j]) ;
h=creat( s );
max=fun( h );
fprintf(out, "%6.1lf\n", max) ;
}
fclose(in) ;
fclose(out) ;
}
//另一种方式:
double fun(STREC *h)
{
double max=h->s;
while(h!=NULL)
{
if(max<h->s)max=h->s;
h=h->next;
}
return max;
}
//使用插入排序法对字符串中的字符进行升序排序。插入法基本算法:先对头两个字符进行排序,然后把第三个字符插入到前两个字符中,插入后前三个字符依然有序,再插入第四个字符到前三个中。
#include <stdio.h>
#include <string.h>
#define N 80
void insert(char *aa)
{ int i,j,n; char ch;
/**********found**********/
n=strlen(aa);
for( i=; i<n ;i++ ) {
/**********found**********/
ch=aa[i];
j=i-;
while ((j>=) && ( ch<aa[j] ))
{ aa[j+]=aa[j];//后移操作
j--;
}
aa[j+]=ch;
}
}
void main( )
{ char a[N]="QWERTYUIOPASDFGHJKLMNBVCXZ";
printf ("The original string : %s\n", a);
insert(a) ;
printf("The string after sorting : %s\n\n",a );
}
//从文件中找到指定学号的学生数据,读入次学生数据,对该学生的分数进行修改,使每门课的分数加3分,修改后重写文件中学生的数据。
#include <stdio.h>
#define N 5
typedef struct student {
long sno;
char name[];
float score[];
} STU;
void fun(char *filename, long sno)
{ FILE *fp;
STU n; int i;
fp = fopen(filename,"rb+");
/**********found**********/
while (!feof(fp))//文件结束检测函数feof
{ fread(&n, sizeof(STU), , fp);
/**********found**********/
if (n.sno==sno) break;
}
if (!feof(fp))
{ for (i=; i<; i++) n.score[i] += ;
/**********found**********/
fseek(fp, -(long)sizeof(STU), SEEK_CUR);//文件定位函数fseek,用来移动文件内部位置指针。第二个参数表示位移量
fwrite(&n, sizeof(STU), , fp);
}
fclose(fp);
}
void main()
{ STU t[N]={ {,"MaChao", , , }, {,"CaoKai", , , },
{,"LiSi", , , }, {,"FangFang", , , },
{,"ZhangSan", , , }}, ss[N];
int i,j; FILE *fp;
fp = fopen("student.dat", "wb");
fwrite(t, sizeof(STU), N, fp);
fclose(fp);
printf("\nThe original data :\n");
fp = fopen("student.dat", "rb");
fread(ss, sizeof(STU), N, fp);
fclose(fp);
for (j=; j<N; j++)
{ printf("\nNo: %ld Name: %-8s Scores: ",ss[j].sno, ss[j].name);
for (i=; i<; i++) printf("%6.2f ", ss[j].score[i]);
printf("\n");
}
fun("student.dat", );
fp = fopen("student.dat", "rb");
fread(ss, sizeof(STU), N, fp);
fclose(fp);
printf("\nThe data after modifing :\n");
for (j=; j<N; j++)
{ printf("\nNo: %ld Name: %-8s Scores: ",ss[j].sno, ss[j].name);
for (i=; i<; i++) printf("%6.2f ", ss[j].score[i]);
printf("\n");
}
}
C语言:根据形参c中指定的英文字母,按顺序打印出若干后继相邻字母,-主函数中放入一个带头节点的链表结构中,h指向链表的头节点。fun函数找出学生的最高分-使用插入排序法对字符串中的字符进行升序排序。-从文件中找到指定学号的学生数据,读入次学生数据,的更多相关文章
- 有一个array的数组,长度为10000,大小不一,用算法找出该数组中的最大值。
不用算法的答案是: var a=[1,2,3,5……];alert(Math.max.apply(null, a));//最大值alert(Math.min.apply(null, a));//最 ...
- 根据导出的查询结果拼接字符串,生成sql语句并保存到txt文件中
import os os.chdir("C:/") path = os.getcwd() print(path) f = open("sql.csv") # p ...
- div中放入一个img元素导致div高度会多出几个像素
在写代码的时候经常遇到这样一个问题,如果div里嵌套一个img元素且div的高度是由img的高度来撑开,那么div的高度总会比img的高度多3px.好了,废话不多说,直接给大家上代码. html代码: ...
- indexOf() 如何判断一个元素在指定数组中是否存在? 找出指定元素出现的所有位置? indexOf()方法 是正序查找,lastIndexOf()是倒叙查找
indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1. let a = [2, 9, 7, 8, 9]; a.indexOf(2); // 0 a.indexOf ...
- 单链表 C++ 实现 - 含虚拟头节点
本文例程下载链接:ListDemo 链表 vs 数组 链表和数组的最大区别在于链表不支持随机访问,不能像数组那样对任意一个(索引)位置的元素进行访问,而需要从头节点开始,一个一个往后访问直到查找到目标 ...
- 机器学习进阶-图像金字塔与轮廓检测-轮廓检测 1.cv2.cvtColor(图像颜色转换) 2.cv2.findContours(找出图像的轮廓) 3.cv2.drawContours(画出图像轮廓) 4.cv2.contourArea(轮廓面积) 5.cv2.arcLength(轮廓周长) 6.cv2.aprroxPloyDP(获得轮廓近似) 7.cv2.boudingrect(外接圆)..
1. cv2.cvtcolor(img, cv2.COLOR_BGR2GRAY) # 将彩色图转换为灰度图 参数说明: img表示输入的图片, cv2.COLOR_BGR2GRAY表示颜色的变换形式 ...
- 找出数组中出现奇数次的元素<异或的应用>
点击打开链接:百度面试题之找出数组中之出现一次的两个数(异或的巧妙应用) 题目描述|:给定一个包含n个整数的数组a,其中只有一个整数出现奇数次,其他整数都出现偶数次,请找出这个整数 使用异或操作,因为 ...
- Linux/Unix 怎样找出并删除某一时间点的文件
Linux/Unix 怎样找出并删除某一时间点的文件 在Linux/Unix系统中,我们的应用每天会产生日志文件,每天也会备份应用程序和数据库,日志文件和备份文件长时间积累会占用大量的存储空间,而有些 ...
- KMP小扩展,找出子串在主串中出现的所有位置
KMP算法能够高效地匹配字符串,找出子串(T串)在主串(S串)中出现的首个位置的原算法网上已经有很多优秀的博文进行详细讲解,这里就不多赘述. 这篇博文主要是对KMP原算法稍作改动,使其能够在主串中把所 ...
随机推荐
- Linux内核源码阅读记录一之分析存储在不同段中的函数调用过程
在写驱动的过程中,对于入口函数与出口函数我们会用一句话来修饰他们:module_init与module_exit,那会什么经过修饰后,内核就能狗调用我们编写的入口函数与出口函数呢?下面就来分析内核调用 ...
- SpringScan
ClassPathBeanDefinitionScanner.java /** * Perform a scan within the specified base packages, * retur ...
- mysql(4):性能分析和性能优化
性能分析 慢查询日志分析 ①查询慢查询日志的状态 show global variables like '%slow_query_log%'; ②开启慢查询日志(当mysql重启时会重置) set g ...
- day14 find
find命令查找信息补充 查看找文件数据信息: 精确查找: find 路径信息 -type 文件类型 -name "文件名" 模糊查找: find 路径信息 -type 文件类型 ...
- data-dismiss="modal"
提交按钮不加: 加上则不会出现提示,直接关闭弹出框 <div class="modal fade" id="myModal" tabindex=" ...
- time时间模块_python
一.常用指定格式打印时间 strftime()函数: import timeprint(time.strftime('%Y-%M-%d %H:%M:%S %A' )) #格式可任意定制,2019-14 ...
- 【网页浏览】怀旧xp画图网页版
非常古老的WindowsXP画图工具 传送链接
- opencv:全局阈值
图像的二值化分割,最重要的就是计算阈值 阈值的计算方法很多,基本分为两类,全局阈值与自适应阈值 OTSU.Triangle #include <opencv2/opencv.hpp> #i ...
- Ubuntu16.04 anaconda3 opencv3.1.0 安装CPU版本caffe
安装anaconda3 安装opencv3.1.0 安装依赖库 修改Makefile.config 修改Makefile 编译报错,卸载anaconda中的protobuffer: conda uni ...
- [LEETCODE] 初级算法/数组 1.3旋转数组
原题: 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数. 示例 1: 输入: [1,2,3,4,5,6,7] 和 k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右 ...