c程序设计语言笔记4

C语言程序设计(第4版)谭浩强著—学习笔记chapter five 循环结构程序设计 第五章 循环结构程序设计5.1循环结构(未完)5.2用while语句实现循环5.3用do...while语句实现循环5.4 用for语句实现循环提高部分(未完)本章小结(未完)习题(未完) 5.1循环结构(未完) 5.2用while语句实现循环 while (表达式){循环体} 当表达式为非0值(代表逻辑值为“真”)时,执行while语句中的内嵌语句 。while循环的特点是先判断表达式,后执行循环体 。 //例5.1用while语句求1+2+3+...+100的和 int i=1,sum=0; wh 阅读详情

打印输入中包含特定“模式”或字符串的各行(UNIX程序grep的特例)

#include <stdio.h>

#define MAXLINE 1000	/*输入的最大行长度   */

int getline(char line[],int max);
int strindex(char source[],char searchfor[]);

char pattern[] = "ould";	/*待查找的模式	*/

main()
{
	char line[MAXLINE];
	int found = 0;

	while (getline(line, MAXLINE) > 0)
		if (strindex(line, pattern) >= 0){
			printf("%s", line);
			found++;
		}
	return found;
}

int getline(char s[], int lim)
{	
	int c, i;
	i = 0;

	while (--lim > 0 && ((c = getchar()) != EOF && c != '\n'))
		s[i++] = c;
	if (c == '\n')
		s[i++] = c;
	s[i] = '\0';
	return i;
}

int strindex(char s[], char t[])
{
	int i, j, k;

	for (i = 0;s[i] != '\0';i++){
		for (j = i,k = 0;t[k] != '\0' && s[j] == t[k];j++,k++)
			;
		if (k > 0 && t[k] == '\0')
			return i;
	}
	return -1;
}

简单的计算器程序:

#include <stdio.h>
#include <ctype.h>
#define MAXLINE 1000

double atof(char s[]);   /*把字符串s转换为相应的双精度浮点数*/
int getline(char line[], int max);

main()
{
	double sum;
	char line[MAXLINE];

	sum = 0;
	while (getline(line,MAXLINE) > 0)
		printf("\t%g\n", sum += atof(line));
	return 0;

}

int getline(char s[], int lim)
{	
	int c, i;
	i = 0;

	while (--lim > 0 && ((c = getchar()) != EOF && c != '\n'))
		s[i++] = c;
	if (c == '\n')
		s[i++] = c;
	s[i] = '\0';
	return i;
}

double atof(char s[])
{
	double val, power;
	int i, sign;

	for(i = 0;isspace(s[i]);i++)
		;
	sign = (s[i] == '-')? -1 : 1;
	if(s[i] == '-' || s[i] == '+')
		i++;
	for (val = 0.0;isdigit(s[i]);i++)
		val = 10.0 * val + (s[i] - '0');
	if (s[i] == '.')
		i++;
	for (power = 1.0;isdigit(s[i]);i++){
		val = 10.0 * val + (s[i] - '0');
		power *= 10.0;
	}
	return sign * val / power;
}

寄存器变量,它所声明的变量在程序中使用的频率较高

register int x;


递归函数实现打印十进制数:

#include <stdio.h>

void printd(int);

main()
{
	int n = -999;
	printd(n);
	getch();
}


void printd(int n)
{
	if (n < 0){
		putchar('-');
		n = -n;
	}
	if (n / 10)
		printd(n / 10);
	putchar(n%10 + '0');

}

快速排序算法:对于给定的数组,从中选出一个元素,以该元素为界将其余的元素划分为两个子集,一个子集中的所有元素都小于该元素,另一个子集中的元素都大于或等于该元素。对这两个子集递归这一过程,当某个子集的元素数小于2时,这个子集不再需要递归。

#include <stdio.h>

void qsort(int v[],int left,int right);
void swap(int v[],int i,int j);

main()
{
	int i, v[7] = {9,5,6,3,1,4,2};
	qsort(v,0,6);
	for(i = 0;i <= 6;i++)
		printf("%d ",v[i]);
	getch();
}

void qsort(int v[],int left,int right)
{
	int i, last;
	
	if (left >= right)/*若数组包含的元素数少于2个*/
		return;	/*不执行任何操作*/
	swap(v, left, (left + right) / 2); /*将划分子集的元素*/
	last = left;	/*移动到v[0]*/
	for (i = left + 1;i <= right;i++) /*划分子集*/
		if (v[i] < v[left])
			swap(v,++last,i);
	swap(v,left,last);	/*恢复划分子集的元素*/
	qsort(v,left,last - 1);
	qsort(v,last+1,right);
}

void swap(int v[],int i,int j)
{
	int temp;

	temp = v[i];
	v[i] = v[j];
	v[j] = temp;
}

练习4-1 编写函数strrindex返回字符串t在s中最右端出现的位置。

#include <stdio.h>
#include <string.h>

//int strrindex(char s[], char t[]);

main()
{
	char pattern[] = "ould";
	char s[] = "icouldandwouldfindyou";

	printf("%d\n",strrindex(s,pattern));
	getch();
}


/*int strrindex(char s[], char t[])
{
	int i, j, k, pos;
	pos = -1;

	for (i = 0;s[i] != '\0';i++){
		for (j = i, k = 0;t[k] == s[j] && t[k] != '\0';j++,k++)
			;
		if (k > 0 && t[k] == '\0')
			pos = i;
	}
	return pos;

}   */

int strrindex(char s[], char t[])
{
	int i, j, k;

	for (i = strlen(s) - strlen(t);i > 0;i--){
		for (j = i, k = 0;s[j] == t[k] && t[k] != '\0';j++,k++)
			;
		if (k > 0 && t[k] == '\0')
			return i;
	}
	return -1;
}

练习4-2 对atof扩充使之能处理科学表示法。

#include <stdio.h>
#include <ctype.h>

double atof(char s[]);

main()
{
	char s[] = "123.45e6";
	printf("123.45e6 is %e\n",atof(s));
	getch();
}

double atof(char s[])
{
	double val, power;
	int exp, i, sign;

	for (i = 0;isspace(s[i]);i++)  //skip white space
		;
	sign = (s[i] == '-') ? -1 : 1;
	if (s[i] == '-' || s[i] == '+')
		i++;
	for (val = 0.0;isdigit(s[i]);i++)
		val = 10.0 * val + (s[i] - '0');
	if (s[i] == '.')
		i++;
	for (power = 1.0;isdigit(s[i]);i++){
		val = 10.0 * val + (s[i] - '0');
		power *= 10.0;
	}
	val = val * sign / power;

	if (s[i] == 'e' || s[i] == 'E'){
		sign = (s[++i] == '-') ? -1 : 1;
		if (s[i] == '+' || s[i] == '-')
			i++;
		for (exp = 0;isdigit(s[i]);i++)
			exp = 10.0 * exp + (s[i] - '0');
		if (sign = 1)
			while(exp-- > 0)
				val *= 10.0;
		else 
			while (exp-- > 0)
				val /= 10.0; /*用val除以10.0而不是乘以0.1是因为0.1无法用二进制精确的表示出来。在大多数机器中,0.1的二进制表示法都比0.1稍微						小一些  */
	}
	return val;

}
练习4-3加入取模运算

#include <stdio.h>
#include <stdlib.h>  /* for  atof() */
#include <ctype.h>
   
#define MAXOP   100  /* max size of operand or operator */
#define NUMBER  '0'  /* signal that a number was found */
#define MAXVAL  100  /* maximum depth of val stack */
#define BUFSIZE 100
 
int getop(char []);

void push(double);
double pop(void);

int getch(void);
void ungetch(int);

int sp = 0;          /* next free stack position */
double val[MAXVAL];  /* value stack */
char buf[BUFSIZE];    /* buffer for ungetch */
int bufp = 0;         /* next free position in buf */

int main(void) 
{ 
    int type; 
    double op2; 
    char s[MAXOP]; 
 

    while((type = getop(s)) != EOF) 
    { 
        switch(type){ 
			 case NUMBER:
               push(atof(s));
               break;
           case '+':
               push(pop() + pop());
               break;
         case '*':
               push(pop() * pop());
			   break;
           case '-':
               op2 = pop();
               push(pop() - op2);
               break;
           case '/':
               op2 = pop();
               if (op2 != 0.0)
                   push(pop() / op2);
               else
                   printf("error: zero divisor\n");
               break;
            case '%': 
                op2 = pop(); 
                if(op2) 
                    push((int)pop()%(int)op2); 
                else 
                    printf("\nError: Division by zero!"); 
                break; 
		   case '\n':
               printf("\t%.8g\n", pop());
               break;
           default:
               printf("error: unknown command %s\n", s);
               break;
  
        } 
    } 
    return EXIT_SUCCESS; 
}

void push(double f)
{
	if (sp < MAXVAL)
		val[sp++] = f;
	else
		printf("error: stack full, can't push %g\n", f);
}
/* pop:  pop and return top value from stack */
double pop(void)
{
	if (sp > 0)
		return val[--sp];
    else {
		printf("error: stack empty\n");
        return 0.0;
    }
}


int getop(char s[]) 
{ 
    #define PERIOD  '.' 
    int i = 0; 
    int c; 
    int next; 
 
    /* Skip whitespace */ 
    while((s[0] = c = getch()) == ' ' || c == '\t') 
        ; 
    s[1] = '\0'; 
 
    /* Not a number but may contain a unary minus. */ 
	 if(!isdigit(c) && c != PERIOD && c != '-') 
        return c;                
	
    if(c == '-') //如果当前读入的c是'-'
    { 
        next = getch(); //判断下一个输入字符next
        if(!isdigit(next) && next != PERIOD) 
        { 
           return c; //如果next不是数字并且不是小数点,则c为操作符 
        } 
        c = next; //否则,既next是数字
    } 
    else 
    { 
        c = getch(); 
    } 
    /*收集整数部分*/
    while(isdigit(s[++i] = c)) //则把c保存到数组s[]中
            c = getch(); 
    if(c == PERIOD)
		/* 收集小数部分*/ 
        while(isdigit(s[++i] = c = getch())) 
                        ; 
    s[i] = '\0'; 
    if(c != EOF) 
        ungetch(c); 
    return NUMBER; 
}  

int getch(void)  /* get a (possibly pushed-back) character */
{
	return (bufp > 0) ? buf[--bufp] : getchar();
}
void ungetch(int c)   /* push character back on input */
{
	if (bufp >= BUFSIZE)
		printf("ungetch: too many characters\n");
	else
		buf[bufp++] = c;
}

练习4-5 增加sin,cos,exp,pow等操作

#include <stdio.h>
#include <stdlib.h>  // for atof()
#include <ctype.h>
#include <math.h>
#include <string.h>

#define MAXOP 100  /* max size of operator */
#define NUMBER '0' /*signal that a number is founded */
#define NAME 'n'   /* signal that a name is founded */
#define MAXVAL 100 /* maximum depth of val stack */
#define BUFSIZE 100

int getop(char s[]);
void mathfnc(char s[]);
void push(double);
double pop();
int getch();
void ungetch(int);

int sp;  /* top stack position */
double val[MAXVAL];
char buf[BUFSIZE];
double variable[26];
int bufp = 0;  /* next buf position */

main()
{
	int i, type, var = 0;
	double op2, v;
	char s[MAXOP];
	for (i = 0;i < 26;i++)
		variable[i] = 0.0;

	while ((type = getop(s)) != EOF){
		switch(type){
			case NUMBER:
				push(atof(s));
				break;
			case NAME:
				mathfnc(s);
				break;
			case '+':
				push(pop() + pop());
				break;
			case '*':
				push(pop() * pop());
				break;
			case '-':
				op2 = pop();
				push(pop() - op2);
				break;
			case '/':
				op2 = pop();
				if (op2)
					push(pop() / op2);
				else 
					printf("error: zero divisor\n");
				break;
			case '%':
				op2 = pop();
				if(op2)
					push(fmod(pop(),op2));
				else 
					printf("error: zero divisor\n");
				break;
			case '\n':
				if (sp > 0){
					v = pop();
					printf("\t%.8g\n",v);
				}
				break;
			case '=':
				pop();
				if (var >= 'A' && var <= 'Z')
					variable[var - 'A'] = pop();
				break;
			default:
				if (type >= 'A' && type <= 'Z')
					push(variable[type - 'A']);
				else if ('v' == type)
					push(v);
				else 
					printf("error: unknown command %s\n",s);
				break;

		}
		var = type;
	}
	return 0;
}

void mathfnc(char s[])
{
	double op2;

	if (!strcmp(s,"sin"))
		push(sin(pop()));
	else if (!strcmp(s,"cos"))
		push(cos(pop()));
	else if (!strcmp(s,"exp"))
		push(exp(pop()));
	else if (!strcmp(s,"pow")){
		op2 = pop();
		push(pow(pop(),op2));
	}
	else 
		printf("error: %s not support.\n",s);
}

int getop(char s[])
{
	int c, i;

	while ((s[0] = c = getch()) == ' ' || c == '\t')
		;
	s[1] = '\0';
	i = 0;
	if (islower(c)){
		while (islower(s[++i] = c = getch()))
			;
		s[i] = '\0';
		if (c != EOF)
			ungetch(c);     /* went one char too far  */
		if (strlen(s) > 1)
			return NAME;	/* >1 char;it is a NAME	*/
		else 
			return c;		/* it may be a command	*/
	}
	if (!isdigit(c) && c != '.' && c != '-')
		return c;	/* not a number */
	if (c == '-')
		if (isdigit(c = getch()) || c == '.')        /*之前写成c = ‘.’ 造成输入1 2 +\n时出现错误,为什么呢? 以后写成'.' == c就不会出现这样错误								了 */
			s[++i] = c;		/* negative number */
		else{
			if (c != EOF)
				ungetch(c);
			return '-';
		}
	if (isdigit(c))
		while (isdigit(s[++i] = c = getch()))
			;
	if (c == '.')
		while (isdigit(s[++i] = c = getch()))
			;
	s[i] = '\0';
	if (c != EOF)
		ungetch(c);
	return NUMBER;
}

int getch()
{
	return (bufp > 0) ? buf[--bufp] : getchar();
}

void ungetch(char c)
{
	if (bufp >= BUFSIZE)
		printf("ungetch: too many characters\n");
	else 
		buf[bufp++] = c;
}
void push(double c)
{
	if (sp < MAXVAL)
		val[sp++] = c;
	else 
		printf("error: stack is full,cann't push %g\n",c);
}

double pop()
{
	if (sp > 0)
		return val[--sp];
	else 
		printf("error: stack is empty.\n");
		return 0.0;
}

练习4-6增加变量处理的命令

见上

练习4-11在getop函数中不使用ungetch函数,而可以使用一个static类型的内部变量解决该问题



C语言程序设计(第4版)谭浩强著—学习笔记chapter three 顺序程序设计 第三章 顺序程序设计3.1算法3.2程序的三种基本结构3.3C语句综述3.4 赋值语句和赋值表达式3.5输入输出函数数据输入输出的概念预编译指令#includeputchar字符输出函数getchar字符输入函数printf格式输出函数scanf格式输入函数3.6顺序结构程序设计提高部分练习 3.1算法 一个程序包括两个部分:一是对数据的描述。在程序中要指定数据的类型和组织形式,也就是数据结构。 二是对操作的描述。操作步骤也叫算法。数据是操作的对象,操作的目的是对数据加工处理得到预期的结果。数据结构+算法 阅读详情

相关推荐

SpringBoot项目启动后ShardingSphere5.0首次SQL查询慢?这个预热技巧帮你搞定

本文针对SpringBoot项目集成ShardingSphere 5.0后首次SQL查询慢的问题,深入剖析了其根源在于SQL解析引擎的懒加载与缓存初始化。文章提供了三种有效的预热技巧,包括精准的SQL解析引擎预热、简单查询触发全链路预热以及可配置的生产级方案,帮助开发者将初始化成本提前至应用启动阶段,从而消除性能毛刺,提升用户体验与系统稳定性。

chair的专栏 1062

坚持练习

编写函数strrindex(s,t),它将返回字符串t在s中最右边出现的位置。如果s中不包含t,则返回-1 #include <stdio.h> #include <stdlib.h> #include <math.h> #include <string.h> int strrindex1(char s[],char t[]){ int i,...

weixin_40805072的博客 369

西工大noj100题python2024第三季21-30

【代码】西工大noj100题python2024第三季21-30。

weixin_70523540的博客 1575

C语言学习笔记

C语言基础学习笔记

weixin_46766062的博客 1332

LibreNMS实战:5分钟搞定Docker部署与中文配置(附常见问题排查)

本文详细介绍了如何使用Docker在5分钟内快速部署LibreNMS,并完成中文界面优化。从环境准备到容器启动,再到中文语言包安装和系统配置调整,提供了完整的实战指南。同时,文章还包含常见问题排查和性能调优建议,帮助用户高效搭建网络监控系统。

e1f2g的博客 1280

ubuntu安装glibc

VSCode 在ubuntu下调试无法打开libc-start.c raise.c等1. 安装glibc2. launch.json中添加路径映射3. 调试 1. 安装glibc apt install glibc-source cd /usr/src/glibc/ sudo tar -xvf glibc-[VERSION].tar.xz 2. launch.json中添加路径映射 "sourceFileMap": { "/build/glibc-S7xCS9": "/usr/src/glib

wq_0708的博客 3万+

初探递归算法

#include #include #include main() { void printd(int n); int x = -3273; printd(x); printf("\n"); } void printd(i

735

openEuler 欧拉 安装Oracle19c数据库RPM包安装

欧拉系统安装部署oracle 19c rpm方式

陈苏漾的IT生涯 6891

printd函数的编写(递归)

将一个数字作为字符串打印的情况:数字是以反序生成的,低位数字先于高位数字生成,它们必须以此相反的次序打印。 解决该问题的方法有两种。第一种方法是将生成的各个数字依次存储到一个数组中,然后以相反的次序打印他们,这种方式与前面itoa函数的处理方式相似。另一种方法是使用递归,如用printd首先调用它自身打印前面的(高位)数字,然后再打印后面的数字。 #include <stdio.h>void pri

也是无奈 2334

【NVMEM子系统】二、NVMEM驱动框架

该子系统整体架构不算太大,还是比较容易去理解的,下面我们一起去一探究竟!,该子系统主要用于实现EEPROMEfuse等非易失存储器的统一管理。在早期,像EEPROM驱动是存放于目录下,由于没有做到好的抽象,每次需要去访问相应内存空间,都需要去复制几乎一样的代码,去注册sysfs,这是一个相当大的抽象泄露。NVMEM子系统就是为了解决以往的抽象泄露问题。

Donge's Blog 1714

让 ABAP 内表真正释放内存:从 CLEAR、FREE 到打破 Table Sharing 的实战技巧

ABAP内表内存管理的关键在于理解其运行时结构:DELETE操作仅逻辑删除行而不会释放内存,CLEAR或FREE才能真正回收内存。常见的误区包括误判空表状态和忽视内表共享机制。实际应用中,大表筛选后应采用VALUE表达式或逐行插入方式重建表体以释放内存。典型案例显示,正确处理内表内存可显著降低SAP Gateway和批处理程序的内存消耗,提升系统稳定性。开发时需结合调试工具观察内存状态,避免因共享机制导致无效回收。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 324

c库函数之一 - atoi函数(补充)

C语言itoa()函数和atoi()函数详解(整数转字符C实现) C语言提供了几个标准库函数,头文件是,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。 1.int/float to string/array: C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串,下面列举了各函数的方法及其说明。 ● itoa():将整型值转换为字符串。

MatthewMao 971

SAN存储与协议,了解SCSI、FC和ISCSI

在前面我们介绍SAN存储及iSCSI协议的时候了解到SAN存储其实是一个CS架构的系统。存储系统本身就是整个系统的服务端。以IP-SAN(也就是基于iSCSI的SAN存储)为例,其整体架构如图1所示。 图1 CS架构 对于存储系统来说,通常是由专业的存储厂商提供,比较知名的如EMC、NetAPP、IBM和日立等等。国内存储厂商也迅速崛起,比较知名的如华为、宏杉、浪潮和同友等等。另外,还有一些小的存储厂商,他们往往集中在某个领域,比如专注文件系统或者块存储等等。 除了专业的存储设备外,其实Linux

shuningzhang的专栏 2684

《C语言程序设计》笔记p4

函数是实现了一些功能的代码块。函数可以一次定义,多次使用。

2401_83507683的博客 439

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

C程序设计语言读书笔记(4)

被调用函数通过return 语句向调用者返回值,return语句的后面可以跟任何表达式:return (表达式);在必要时,表达式将被转化为函数的返回值类型。声明语句double sum, atof(char []);表明sum是一个double 类型的变量,atof函数带有一个

...... 2242

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

《C语言程序设计 第4版》笔记和代码 第七章 函数与模块化程序设计

《C语言程序设计 第4版》笔记和代码 第七章 函数与模块化程序设计

gy200203的博客 925

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

c 语言1 4,《c程序设计语言》读书笔记(一)1~4

本文都是自己重读《c程序设计语言》时的笔记:自己的一些思考:1、printf和getchar的区别:scanf printf 可以输入输出各种类型的变量,比如int float char,而且同时输入 输出多个也可以 如scanf("%d,%d",&a,&b);getchar putchar 只能输入输出char类型的变量,而且只能同时输入输出一个字符scanf()函数取数据是遇...

weixin_39885469的博客 143

C语言程序设计摘抄笔记4

2021/3/7 for循环和while循环都是先判断条件再进行循环。while循环语法接近自然语言,简单易读,相比起来for循环在括号中,设置了3个位置,分别写初始条件、判断式和累加器。for循环一般用于计数型循环,一般有明确的循环次数,使用while循环能用相似的语句来实现功能;但是对于判断比较复杂的条件、循环次数不直观的循环,由于只能用1句代码来实现条件判断功能,for循环就力不从心了,而while循环的判断式中的值可以通过若干行代码得到。 3/11 c语言中continue语句的作用是结束本次循环,

m0_49159142的博客 231

C语言程序设计(第4版)谭浩强著—学习笔记chapter one 程序设计与C语言

第一章 程序设计与C语言1.1机器语言和高级语言1.2 C语言的出现和发展过程1.3简单的C语言程序stdio.hmain函数printf函数scanf函数格式字符串\n换行符return 0注释1.4运行C程序的步骤和方法运行C程序的步骤运行 C程序的方法课后练习 1.1机器语言和高级语言 计算机的本质是运行程序的机器,程序和指令的思想是计算机系统中的最基本概念。 一个型号机器语言的指令集合叫做该计算机的机器语言又叫低级语言。不同型号计算机的机器语言是不同的。机器语言和汇编语言依赖于具体计算机,是低级语

m0_63640882的博客 688

翁恺C语言程序设计:学习笔记4

编程语言发展路线 C语言是一种有类型语言,即变量在使用前,需要定义并确定类型。 C语言之后有两个发展方向: 更加强调类型,数据类型检查更严格,C++、JAVA; 面向底层,可以尽早发现问题。 不看重类型,甚至不用提前定义变量,Python、JavaScript、PHP; 过于强调类型,导致程序员过于注重底层,离应用越近,离底层越远。 C语言中的数据类型 数据类型的分类 C语...

漫步量化 728

C语言程序设计学习笔记:P4-循环

本系列博客用于记录学习浙江大学翁恺老师的C语言程序设计,系列笔记链接如下: C语言程序设计学习笔记:P1-程序设计与C语言 C语言程序设计学习笔记:P2-计算 C语言程序设计学习笔记:P3-判断 C语言程序设计学习笔记:P4-循环 C语言程序设计学习笔记:P5-循环控制 C语言程序设计学习笔记:P6-数据类型 C语言程序设计学习笔记:P7-函数 C语言程序设计学习笔记:P8-数组 C语言程序设计学习笔记:P9-指针 C语言程序设计学习笔记:P10-字符串 C语言程序设计学习笔记:P11-结构类型 C语言程序

InnerPeaceHQ的博客 3062

C++方向研发笔记0005——C语言程序设计初阶学习笔记4

C++方向研发笔记0005——C语言程序设计初阶学习笔记4

Lbs_gemini0603的博客 824

Java研发笔记5——C语言程序设计学习笔记4

Java研发笔记5——C语言程序设计学习笔记4

Lbs_gemini0603的博客 508

《c程序设计语言》读书笔记(一)1~4

本文都是自己重读《c程序设计语言》时的笔记: 自己的一些思考: 1、printf和getchar的区别:  scanf printf  可以输入输出各种类型的变量,比如int float char,而且同时输入 输出多个也可以 如scanf("%d,%d",&a,&b);  getchar putchar 只能输入输出char类型的变量,而且只能同时输入输出一个字符  scanf()函数

889

Java研发笔记4——C语言程序设计学习笔记3

Java研发笔记4——C语言程序设计学习笔记3

Lbs_gemini0603的博客 612

读《C程序设计语言》笔记4

练习2-1:   编写一个程序以确定分别由signed及unsigned限定的char、short、int及long类型变量的取值范围。采用打印标准头文件中的相应值以及直接计算两种方式实现:   采用打印标准头文件中的相应值:  1 #include <stdio.h>2 #include <limits.h>3 //determine ranges of typ...

weixin_30650859的博客 182
上一篇: c程序设计语言笔记3
下一篇: c语言中的全局变量,局部变量,static,extern
zhanghui310
博客等级 码龄18年 2粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值