首页 > 其他分享 >我的第十次C语言练习

我的第十次C语言练习

时间:2023-08-04 21:32:49浏览次数:33  
标签:name weight area 练习 第十次 C语言 radius printf sizeof

今天学的很快,大多数都是之前知道的。

//#define DENSITY 62.4
//int main(void)
//{
//	float weight, volume;
//	int size, letters;
//	char name[40];
//	printf("Hi!What's your first name?\n");
//	scanf("%s", &name);
//	printf("%s,what's your weight and pounds?\n", name);
//	scanf("%f", &weight);
//	size = sizeof(name);
//	letters = strlen(name);
//	volume = weight / DENSITY;
//	printf("Well,%s,your volume is %2.2f cubic feet.\n", name, volume);
//	printf("Also,your first name has %d letters,\n", letters);
//	printf("and we have %d bytes to store it.\n");
//	return 0;
//}

这是一个互动代码,他需要输入两个值,一个是name,一个是weight,原本书上是输入了Christine这个名字,我输入的是Angela Plains,一个含有空格的字符串,本来我觉得是没有什么问题的,但是运行的时候程序自行调过了weight的输入,并在后面的weight的位置上出现了一团数字,而当我输入不含空格的字符串时,运行到weight时就会停止让我输入数据。应该是不能输入含空格的字符串,会被认为是weight的数据。

//#define PRAISE "You are an extraordinary being."
//int main(void)
//{
//	char name[40];printf("What's your name? ");
//	scanf("%s", &name);
//	printf("Hello name of %d letters occupies %zd memory cells.\n", strlen(name), sizeof(name));
//	printf("The phrase of praise has %d letters", strlen(PRAISE));
//	printf(" and occupies %zd memory cells.\n", sizeof(PRAISE));
//	return 0;
//}

strlen计算的是字符串中的字符数量,而sizeof计算的则是字符串的大小,虽然一字符的大小就是一字节,但是strlen和sizeof的结果还是有差异的。用strlen算出的结果是储存了字符的单元的个数,不包含空字符\0,sizeof计算的是整个字符串,包含空字符,而且在声明函数的时候如果说明了所需字符串的大小,例如上面的name[40]就说明了name这个变量中只能塞入40个字符,由此打印出的sizeof就是40,同样在PRAISE的打印中,sizeof比strlen大一个字符,多的那个就是空字符。还要说明的是name[40]这样的字符串中要算上空字符,也就是最多39个有效的字符。

//#define PI 3.14159
//int main(void)
//{
//	float area, circum, radius;
//	printf("What is the radius of your pizza?\n");
//	scanf("%f", &radius);
//	area = PI * radius * radius;
//	circum = 2.0 * PI * radius;
//	printf("Your basic pizza parameters are as follows:\n");
//	printf("circumference=%1.2f,area=%1.2f\n", circum, area);
//	return 0;
//}
//int main(void)
//{
//	float area, circum, radius;
//	const float PI = 3.14159;
//	printf("What is the radius of your pizza?\n");
//	scanf("%f", &radius);
//	area = PI * radius * radius;
//	circum = 2.0 * PI * radius;
//	printf("Your basic pizza parameters are as follows:\n");
//	printf("circumference=%1.2f,area=%1.2f\n", circum, area);
//	return 0;
//}

上面的%1.2f中1表示格式化字符串中所占字符数目为1,虽然看不懂什么意思,2是指小数位数为2。上面运用到了两种定义常量的方法,define和const。

标签:name,weight,area,练习,第十次,C语言,radius,printf,sizeof
From: https://blog.51cto.com/u_16187763/6968736

相关文章

  • 在线就能用的 SQL 练习平台(附SQL学习文档)
        对大数据和数据分析感兴趣的同学,如何入门一直是一个大问题。    而对于找工作的同学,笔试和面试环节也一直是一个让人头疼的问题。其实企业也很头疼,不进行笔试,怕被面试者忽悠。进行笔试可能又把某些大牛筛出去了。但是不管怎么说,有些硬技能还是需要的,比如做大数据来说,如......
  • C语言-计蒜客-斐波那契数列(非数组)
    小蒜蒜最近学习了斐波那契数列。斐波那契数列是指这样的数列:数列的第一个和第二个数都为1、1,接下来每个数都等于前面2个数之和。给出一个正整数k,要求斐波那契数列中第k个数是多少。输入格式输入一行,包含一个正整数k。(1≤k≤46)输出格式输出一行,包含一个正整数,表示斐波那......
  • C语言学习笔记(七)初识结构体
    初识结构体结构体的声明结构体的基础知识结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。结构的声明struct标签{ 值; 值; ……}变量列表;例://定义一个结构体类型structStu//struct-结构体关键字Stu-结构体标签structStu-结......
  • C语言.多级指针
    #include<stdio.h>#include<stdlib.h>#include<string.h>intmain(){longaa=123;longaaa=&aa;//warning:initializationof‘longint’from‘longint*’makesintegerfrompointerwithoutacast//这里,编译器......
  • 指针进阶(C语言)
    指针进阶头文件#include<stdio.h>#include<stdlib.h>#include<string.h>字符指针intmain(){//字符指针chararr1[]="abcdef";chararr2[]="abcdef";char*p1="abcdef";char*p2="abcdef";......
  • 100道Python练习题
    100道Python练习题,希望对你的学习有所帮助!编写一个程序,输入两个数并计算它们的和。编写一个程序,输入一个字符串,并倒序输出该字符串。编写一个程序,判断一个数是否为质数。编写一个程序,计算并输出斐波那契数列的前n项(n由用户输入)。编写一个程序,判断一个字符串是否为回文串。编写一个......
  • C语言实现简易版扫雷
     扫雷作为一款内置于windowsXP系统的游戏,相信大多数人都有游玩过。接下来我将带着各位用C语言来实现这个游戏。首先,我们来了解扫雷游戏的规则,将这些规则逐步用函数来实现,再经过逻辑的调整即可得到所需的代码。可以试着先自己玩一把再继续看本文章。扫雷游戏网页版-Minesweeper......
  • C语言
    C语言基础语法1.程序语言的基本构成要素:自然语言程序设计语言字数字,字母,运算符,分隔符词/词组关键字,标识符,常量句子/段落语句篇章程序1.关键字:也称保留字(ReservedWord),是C语言预先定义的、具有特殊意义的单词2.标识符:是大小写字母,数字和下划......
  • C语言 | extern关键字
    extern是C语言中的关键字,它会声明一个全局变量或者函数,表明变量或者函数是定义在其他其他文件中的。​ 定义:表示创建变量或分配存储单元。​ 声明:说明变量的性质,但并不分配存储单元。externinti; //只是声明,但没有分配内存空间给变量iinti; //是定义,给变量i分配了4......
  • 我的第九次C语言练习
    今天终于学完了弟三章,实际上昨天没剩下多少了,今天主要是在写练习。//intmain(void)//{// inta;// unsignedintb;// a=12;// b='\012';// printf("a=%d,b=%u",a,b);// return0;//}首先试了下unsignedint和正常int的不同,因为书上在打印\012时答案上只显示了unsig......