文章目录
资料下载
https://www.ituring.com.cn/book/1671,点击“随书下载”;
第1章 初识c语言
1-1 显示计算结果
计算整数的和并显示结果:
代码清单1-1 显示整数5和37的和
#include<stdio.h>
int main()
{
printf("%d", 15 + 37);
}
/**/
1-2 变量
代码清单1-2 显示整数15-37的差
#include<stdio.h>
int main()
{
printf("%d", 15 - 37);
}
1-3 输入和显示
代码清单1-3 人性化地显示15与37的和
int main()
{
printf("15与37的和是:%d", 15 + 37);
}
代码清单1-4 打招呼并自我介绍
#include<stdio.h>
int main()
{
printf("您好!我叫柴田望洋");
}
代码清单1-5 打招呼并进行自我介绍(打招呼和自我介绍分行显示1)
#include<stdio.h>
int main()
{
printf("您好!\n我叫柴田望洋");
}
代码清单1-6 打招呼并进行自我介绍(打招呼和自我介绍分行显示2)
#include<stdio.h>
int main()
{
printf("您好!\n");
printf("我叫柴田望洋\n");
}
代码清单1-7 打招呼并响铃3次
#include<stdio.h>
int main()
{
printf("您好! \a\a\a\n");//\a表示响铃
}
// \a 电脑确实有响铃声音,是从音响中发出的。
代码清单1-8 为两个变量赋整数值并显示
#include<stdio.h>
int main()
{
int vx, vy;
vx = 57;
vy = vx + 10;
printf("vx的值是%d\n", vx);
printf("vy的值是%d\n", vy);
}
代码清单1-9 在不为两个变量赋值的情况下显示
#include<stdio.h>
int main()
{
int vx, vy;
printf("vx的值是%d\n", vx);
printf("vy的值是%d\n", vy);
}
这是由于变量vx,vy只定义了int型,没有定义具体数值的结果,这时里面会是一个垃圾值;
代码清单1-10 变量的声明并初始化赋值
#include<stdio.h>
int main()
{
int vx = 57;
int vy = vx + 10;
printf("vx的值是%d\n", vx);
printf("vy的值是%d\n", vy);
}
声明就是哪个类型;初始化指赋值
代码清单1-11 显示并确认输入的整数值
int main()
{
int no;
printf("请输入一个整数");
scanf("%d", &no);//和printf不同,scanf需要加&取地址符
printf("您输入的是%d", no);
}
代码清单1-12 读取一个整数并显示其5倍数的值
#include<stdio.h>
int main()
{
int no;
printf("请输入一个整数");
scanf("%d", &no);//和printf不同,scanf需要加&
printf("它的5倍数是%d\n", 5 * no);
}
代码清单1-13 显示出读取到的两个整数的和
#include<stdio.h>
int main()
{
int n1, n2;
puts("请输入两个整数");
printf("整数1:"); scanf("%d", &n1);
printf("整数2:"); scanf("%d", &n2);
printf("他们的和是%d\n", n1 + n2);
}
代码清单1-14 显示出读取到的两个整数的和
#include<stdio.h>
int main()
{
int n1, n2;
int wa;
puts("请输入两个整数");
printf("整数1:"); scanf("%d", &n1);
printf("整数2:"); scanf("%d", &n2);
wa = n1 + n2;
printf("他们的和是%d\n", wa);
}
第2章 运算和数据类型
2-1 运算
代码清单2-1 读取两个整数的值,然后显示出他们的和、差、积商和余数
#include<stdio.h>
int main()
{
int vx, vy;
puts("请输入两个整数");
printf("整数vx:"); scanf("%d", &vx);
printf("整数vy:"); scanf("%d", &vy);
printf("vx+vy=%d\n", vx+vy);
printf("vx-vy=%d\n", vx - vy);
printf("vx*vy=%d\n", vx * vy);
printf("vx/vy=%d\n", vx / vy);
printf("vx%%vy=%d\n", vx % vy);//格式化字符串中如果有2个连续的%那么只执行一个
}
2-2 数据类型
代码清单2-2 模10提取整数最末尾数字
#include<stdio.h>
int main()
{
int no;
printf("请输入一个整数");
scanf("%d", &no);
printf("最后一位是%d\n", no % 10);
}
代码清单2-3 读取两个整数,显示它们的商和余数
#include<stdio.h>
int main()
{
int a, b;
puts("请输入两个整数");
printf("整数a:"); scanf("%d", &a);
printf("整数b:"); scanf("%d", &b);
printf("a除以b商%d余%d\n", a / b, a % b);
}
代码清单2-4 对读取的整数值进行符号取反操作并输出结果
#include<stdio.h>
int main()
{
int num;
printf("请输入一个整数");
scanf("%d", &num);
printf("%d", -num);
}
代码清单2-5 读取两个整数显示出它们的平均值
#include<stdio.h>
int main()
{
int a, b;
puts("请输入两个整数");
printf("整数a:"); scanf("%d", &a);
printf("整数b:"); scanf("%d", &b);
printf("它们的平均值是:%d", (a + b) / 2);
}
代码清单2-6 整数和浮点数
#include<stdio.h>
int main()
{
int n;
double x;//浮点数
n = 9.99; x = 9.99;
printf("int型变量n的值:%d\n", n);
printf("n/2:%d\n", n / 2);
printf("double型变量x的值:%f\n", x);
printf("x/2.0:%f\n", x / 2.0);
}
代码清单2-7 读取两个实数值,用实数显示出它们的和、差、积、商
#include<stdio.h>
int main()
{
double vx, vy;
puts("请输入两个数");
printf("实数vx:"); scanf("%lf", &vx);
printf("实数vy:"); scanf("%lf", &vy);
printf("vx+vy=:%f\n", vx + vy);
printf("vx-vy=:%f\n", vx - vy);
printf("vx*vy=%f\n", vx * vy);
printf("vx/vy=%f\n", vx / vy);
}
double类型数据,不能进行%求余运算
代码清单2-8 验证数据类型和运算
#include<stdio.h>
int main()
{
int n1, n2, n3, n4;
double d1, d2, d3, d4;
n1 = 5 / 2; n2 = 5.0 / 2.0; n3 = 5.0 / 2; n4 = 5 / 2.0;
d1 = 5 / 2; d2 = 5.0 / 2.0; d3 = 5.0 / 2; d4 = 5 / 2.0;
printf("%d %d %d %d\n", n1, n2, n3, n4);
printf("%f %f %f %f\n", d1, d2, d3, d4);
}
运算只要一个变量是带小数点的,结果就是带小数点的。
代码清单2-9 读取两个整数并用浮点数显示出它们的平均值
#include<stdio.h>
int main()
{
int a, b;
puts("请输入两个整数");
printf("整数a:"); scanf("%d", &a);
printf("整数b:"); scanf("%d", &b);
printf("它们的平均值是%f\n", (a + b) / 2.0);
}
代码清单2-10 强制类型转换
#include<stdio.h>
int main()
{
int a, b;
puts("请输入两个整数");
printf("整数:"); scanf("%d", &a);
printf("整数:"); scanf("%d", &b);
printf("它们的平均值是:%f\n",(double)(a+b)/2);
}
代码2-11 读取三个整数并显示出它们的合计值和平均值
#include<stdio.h>
int main()
{
int a, b, c, sum; double ave;
puts("请输入三个整数");
printf("整数a:"); scanf("%d", &a);
printf("整数b:"); scanf("%d", &b);
printf("整数c:"); scanf("%d", &c);
sum = a + b + c;
ave = (double)sum / 3;
printf("它们的合计值是%5d\n", sum);
printf("它们的平均值是%5.1f\n", ave);
}
代码2-12 格式化整数和浮点数并显示
#include<stdio.h>
int main()
{
printf("[%d]\n", 123);
printf("[%.4d]\n", 123);
printf("[%4d]\n", 123);
printf("[%04d]\n", 123);
printf("[%-4d]\n\n", 123);
printf("[%d]\n", 12345);
printf("[%.3d]\n", 12345);
printf("[%3d]\n", 12345);
printf("[%03d]\n", 12345);
printf("[%-3d]\n\n", 12345);
printf("[%f]\n", 123.13);
printf("[%.1f]\n", 123.13);
printf("[%6.1f]\n\n", 123.13);
printf("[%f]\n", 123.13);
printf("[%.1f]\n", 123.13);
printf("[%4.1f]\n\n", 123.13);
}
第3章 分支解雇程序
3-1 if语句
代码清单3-1 输入的整数能被5整除
#include<stdio.h>
int main()
{
int no;
printf("请输入一个整数");
scanf("%d", &no);
if (no % 5)
puts("输入的整数不能被5整除");
else
puts("输入的整数能被5整除");
}
代码清单3-2 输入的整数是奇数吗
#include<stdio.h>
int main()
{
int no;
printf("请输入一个整数");
scanf("%d", &no);
if (no % 2)
puts("输入的整数是奇数");
else
puts("输入的整数不是奇数");
}
代码清单3-3 输入的整数能被5整除吗
#include<stdio.h>
int main()
{
int no;
printf("请输入一个整数");
scanf("%d", &no);
if (no % 5)
puts("输入的整数不能被5整除");
else
puts("输入的整数能被5整除");
}
代码清单3-4 输入的整数值是奇数还是偶数
#include<stdio.h>
int main()
{
int no;
printf("请输入一个整数");
scanf("%d", &no);
if (no % 2)
puts("输入的整数是奇数");
else
puts("输入的整数是偶数");
}
代码清单3-5 判断输入的整数值否为0
#include<stdio.h>
int main()
{
int num;
printf("请输入一个整数");
scanf("%d", &num);
if (num)
puts("该整数不是0");
else
puts("该整数是0");
}
代码清单3-6 输入的两个整数相等吗
#include<stdio.h>
int main()
{
int n1, n2;
puts("请输入两个整数");
printf("整数1:"); scanf("%d", &n1);
printf("整数2:"); scanf("%d", &n2);
if (n1 == n2)
puts("它们相等");
else
puts("它们不相等");
}
代码清单3-7 输入的两个整数相等吗(2)
#include<stdio.h>
int main()
{
int n1, n2;
puts("请输入两个整数");
printf("整数1:"); scanf("%d", &n1);
printf("整数2:"); scanf("%d", &n2);
if (n1 != n2)
puts("它们不相等");
else
puts("它们相等");
}
代码清单3-8 个位数是5吗
#include<stdio.h>
int main()
{
int num;
printf("请输入一个整数:");
scanf("%d", &num);
if ((num % 10) == 5)
puts("该整数个位数是5");
else
puts("该整数个位数不是5");
}
代码清单 3-9 判断输入的整数的符号
#include<stdio.h>
int main()
{
int no;
printf("请输入一个整数");
scanf("%d", &no);
if (no == 0)
puts("该整数为0");
else if (no > 0)
puts("该整数为正数");
else
puts("该整数为负数");
}
代码清单3-10 嵌套if else,如果输入的整数值为正,则判断该值的奇偶性并显示
#include<stdio.h>
int main()
{
int no;
printf("请输入一个整数");
scanf("%d", &no);
if (no > 0)
if (no % 2 == 0)
puts("该整数为偶数");
else
puts("该整数为奇数");
else
puts("您输入的不是正数");
}
代码清单3-11 显示所输入的两个整数中较大的数
int main()
{
int n1, n2;
puts("请输入两个整数");
printf("整数1:"); scanf("%d", &n1);
printf("整数2:"); scanf("%d", &n2);
if (n1 > n2)
printf("较大的数是%d\n", n1);
else
printf("较大的数是%d\n", n2);
}
代码清单3-12 显示所输入的两个整数中较大的数(2)
#include<stdio.h>
int main()
{
int n1, n2,max;
puts("请输入两个整数");
printf("整数1:"); scanf("%d", &n1);
printf("整数2:"); scanf("%d", &n2);
if (n1 > n2) max = n1; else max = n2;
printf("较大的数是%d",max);
}
代码清单3-13 计算所输入的三个整数中的最大值并显示
#include<stdio.h>
int main()
{
int n1, n2,n3,max;
puts("请输入两个整数");
printf("整数1:"); scanf("%d", &n1);
printf("整数2:"); scanf("%d", &n2);
printf("整数2:"); scanf("%d", &n3);
max = n1;
if (n2 > max) max = n2;
if (n3 > max) max = n3;
printf("最大值是%d", max);
}
代码清单3-14 显示所输入的两个整数中的较大的数(3)
#include<stdio.h>
int main()
{
int n1, n2,max;
puts("请输入两个整数");
printf("整数1:"); scanf("%d", &n1);
printf("整数2:"); scanf("%d", &n2);
max = (n1 > n2) ? n1 : n2;
printf("较大的数是%d\n", max);
}
代码清单3-15 计算输入的两个整数的差并显示(条件运算符)
#include<stdio.h>
int main()
{
int n1, n2,max;
puts("请输入两个整数");
printf("整数1:"); scanf("%d", &n1);
printf("整数2:"); scanf("%d", &n2);
printf("它们的差是%d", (n1 > n2) ? n1 - n2 : n2 - n1);
}
代码清单3-16 计算所输入的两个整数中的较大数和较小数并显示
#include<stdio.h>
int main()
{
int n1, n2,max,min;
puts("请输入两个整数");
printf("整数1:"); scanf("%d", &n1);
printf("整数2;"); scanf("%d", &n2);
if (n1 > n2)
{
max = n1; min = n2;
}
else
{
max = n2; min = n1;
}
printf("较大的数是%d\n", max);
printf("较小的数是%d\n", min);
}
代码清单3-17 显示所输入的月份所处的季节
#include<stdio.h>
int main()
{
int month;
printf("请输入月份");
scanf("%d", &month);
if (month >= 3 && month <= 5)
printf("%d月是春季\n", month);
else if (month >= 6 && month <= 8)
printf("%d月是夏季\n", month);
else if (month >= 9 && month <= 11)
printf("%d月是秋季", month);
else
printf("%d月不存在", month);
}
3-2 switch语句
代码清单3-18 显示所输入的整数除以3的余数
#include<stdio.h>
int main()
{
int no;
printf("请输入一个整数");
scanf("%d", &no);
if (no % 3 == 0)
puts("该整数能被3整除");
else if (no % 3 == 1)
puts("该整数除以3的余数是1");
else
puts("该整数除以3的余数是2");
}
代码清单3-19 显示所输入的整数除以3的余数(switch)
#include<stdio.h>
int main()
{
int no;
printf("请输入一个整数");
scanf("%d", &no);
switch (no % 3)
{
case 0:puts("该数能被3整除"); break;
case 1:puts("该数除以3的余数是1"); break;
case 2:puts("该数除以3的余数是2"); break;
}
}
代码清单3-20 确认swith语句动作的程序
#include<stdio.h>
int main()
{
int sw;
printf("整数");
scanf("%d", &sw);
switch (sw)
{
case 1:puts("A"); puts("B"); break;
case 2:puts("C");
case 5:puts("D"); break;
case 6:
case 7:puts("E"); break;
default:puts("F"); break;
}
}
当控制表达式的判断结果与任何一case都不一致时候,程序就会跳转到default;
代码清单3-20 确认swith语句动作的程序
第4章 程序的循环控制
4-1 do while语句
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main(void)
{
int retry;//要继续吗
do
{
int no;
printf("请输入一个整数:");
scanf("%d", &no);
if (no % 2)
puts("这是一个奇数。");
else
puts("这是一个偶数。");
printf("再输入一次吗?【Yes按0/No按9】:");
scanf("%d", &retry);
} while (retry == 0);
return 0;
}
结构:
do
{
…;
}while()
do是执行的意思,while是在什么什么器件,do while语句意思是,在while()为1成立,do{}就会不断循环,直到while()不为1,跳出do{}循环体;
要再输入一次吗?
0→&retry接收到0→传给while(retry == 0)控制表达式判断,0等于0,为真了,所有就要循环,重头再执行do{};
3,4,55,you5&retry接收到不为0→传给while(retry = 0)控制表达判断,3,4,55,这些不等于0,判断为假,do{}循环体就去不再执行了;
复合语句(程序块)中的声明
本例中do语句的循环体是{}之间的部分,称为复合语句(程序块);
变量no是在do语句中的复合语句部分进行声明的,需要注意的是,仅在复合语句中使用的变量通常要在复合语句中进行声明;
复合语句是由{0个以上声明 0个以上语句}组成的;参考第三章
限定值范围的读取
#define _CRT_SECURE_NO_WARNINGS
/*
根据读取的整数值显示所出的拳(只接收0、1、2)
*/
#include <stdio.h>
int main(void)
{
int retry;//要继续吗
do
{
int hand; /* 出拳 */
do {
printf("请选择出什么拳【数字0代表石头,1代表剪刀2代表布】:");
scanf("%d", &hand);
} while (hand < 0 || hand > 2);//hand小于0或者hand大于2,就不执行do语句
printf("你选择了");
switch (hand) {//switch(编号)
case 0: printf("石头。\n"); break;//编号0
case 1: printf("剪刀。\n"); break;//编号1
case 2: printf("布。\n"); break;//编号2
}
printf("再输入一次吗?【Yes按0/No按9】:");
scanf("%d", &retry);//scanf()可以从键盘读取到输入的信息;
} while (retry == 0);//while判断为真就执行do语句
return 0;
}
求多个整数的和及平均值
#define _CRT_SECURE_NO_WARNINGS
/*
不停地输入整数,显示其和及平均值
*/
#include <stdio.h>
int main(void)
{
int sum = 0; /* 和 */
int cnt = 0; /* 整数个数 */
int retry; /* 是否继续处理 */
do {
int t;
printf("请输入一个整数:");
scanf("%d", &t);
sum = sum + t; /* 将sum加t的结果赋值给sum(sum加t)*/
cnt = cnt + 1; /* 将cnt加1的结果赋值给cnt(cnt加1)*/
printf("是否继续? <Yes… 0/No… 9>:");
scanf("%d", &retry);
} while (retry == 0);
printf("和为%d,平均值为%.2f。\n", sum, (double)sum / cnt);
return 0;
}
复合赋值运算符
+=号;如
sun=sum+t;等效于sun+=t;
#define _CRT_SECURE_NO_WARNINGS
/*
不停地输入整数,显示其和及平均值
*/
#include <stdio.h>
int main(void)
{
int sum = 0; /* 和 */
int cnt = 0; /* 整数个数 */
int retry; /* 是否继续处理 */
do {
int t;
printf("请输入一个整数:");
scanf("%d", &t);
sum = sum + t; /* 将sum加t的结果赋值给sum(sum加t)*/
cnt = cnt + 1; /* 将cnt加1的结果赋值给cnt(cnt加1)*/
printf("是否继续? <Yes… 0/No… 9>:");
scanf("%d", &retry);
} while (retry == 0);
printf("和为%d,平均值为%.2f。\n", sum, (double)sum / cnt);
return 0;
}
4-2 while语句
输入一个整数,显示从他开始递减到0
#define _CRT_SECURE_NO_WARNINGS
/*
从输入的整数开始倒数到0
*/
#include <stdio.h>
int main(void)
{
int no;
printf("请输入一个正整数:");
scanf("%d", &no);
while (no >= 0) {
printf("%d ", no);
no--; /* no的值递减 */
}
printf("\n"); /* 换行 */
return 0;
}
4-7输入一个整数,显示从0开始到他的递增
#define _CRT_SECURE_NO_WARNINGS
/*
递增显示从0到输入的正整数为止的各个整数
*/
#include <stdio.h>
int main(void)
{
int i, no;
printf("请输入一个正整数:");
scanf("%d", &no);
i = 0;
while (i <= no)
printf("%d ", i++); /* i的值在显示之后递增 */
printf("\n"); /* 换行 */
return 0;
}
4-8限定次数的循环
#define _CRT_SECURE_NO_WARNINGS
/*
输入一个整数,连续显示出该整数个*
*/
#include <stdio.h>
int main(void)
{
int no;
printf("正整数");
scanf("%d", &no);
while (no-- > 0)
putchar('*');
putchar('\n');
return 0;
}
前置递增、递减运算符
前置递增运算符 ++a 使a的值增加1(该表达式的值是增加后的值)
前置递增运算符 --a 使a的值减小1(该表达式的值是减小后的值)
4-9输入规定个数个整数并显示出它们的合计值和平均值
#define _CRT_SECURE_NO_WARNINGS
/*
输入规定个数个整数并显示出它们的合计值和平均值
*/
#include <stdio.h>
int main(void)
{
int i = 0;
int sum = 0; /* 合计值 */
int num, tmp;
printf("要输入多少个整数:");
scanf("%d", &num);
while (i < num) {
printf("No.%d丗", ++i); /* i的值递增后显示 */
scanf("%d", &tmp);
sum += tmp;
}
printf("合计值:%d\n", sum);
printf("平均值:%.2f\n", (double)sum / num);
return 0;
}
逆向显示整数值
4-10逆向显示正整数
#define _CRT_SECURE_NO_WARNINGS
/*
逆向显示正整数
*/
#include <stdio.h>
int main(void)
{
int no;
do {
printf("请输入一个正整数:");
scanf("%d", &no);
if (no <= 0)
puts("\a请不要输入非正整数。");
} while (no <= 0);
/* no比0大时 */
printf("该整数逆向显示的结果是");
while (no > 0) {
printf("%d", no % 10); /* 显示最后一位数 */
no /= 10; /* 右移一位 */
}
puts("。");
return 0;
}
4-3 for语句
4-11递增显示从0到输入的正整数为止的各个整数(使用for语句)
#define _CRT_SECURE_NO_WARNINGS
/*
递增显示从0到输入的正整数为止的各个整数(使用for语句)
*/
#include <stdio.h>
int main(void)
{
int i, no;
printf("请输入一个正整数:");
scanf("%d", &no);
for (i = 0; i <= no; i++)
printf("%d ", i);
putchar('\n'); /* 换行 */
return 0;
}
使用for语句实现固定次数的循环
4-12输入一个整数,连续显示出该整数个(使用for 语句)*
#define _CRT_SECURE_NO_WARNINGS
/*
输入一个整数,连续显示出该整数个*(使用for 语句)
*/
#include <stdio.h>
int main(void)
{
int i, no;
printf("正整数");
scanf("%d", &no);
for (i = 1; i <= no; i++)
putchar('*');
putchar('\n');
return 0;
}
4-13输入规定个数个整数并显示出它们的合计值和平均值(使用for 语句)
#define _CRT_SECURE_NO_WARNINGS
/*
输入规定个数个整数并显示出它们的合计值和平均值(使用for 语句)
*/
#include <stdio.h>
int main(void)
{
int i = 0;
int sum = 0; /* 合计值 */
int num, tmp;
printf("输入多少个整数:");
scanf("%d", &num);
for (i = 0; i < num; i++) {
printf("No.%d:", i + 1);
scanf("%d", &tmp);
sum += tmp;
}
printf("合计值:%d\n", sum);
printf("平均值:%.2f\n", (double)sum / num);
return 0;
}
偶数的枚举
4-14显示输入的整数值以下的偶数
#define _CRT_SECURE_NO_WARNINGS
/*
显示输入的整数值以下的偶数
*/
#include <stdio.h>
int main(void)
{
int i, n;
printf("整数值:");
scanf("%d", &n);
for (i = 2; i <= n; i += 2)
printf("%d ", i);
putchar('\n');
return 0;
}
约数的枚举
4-14显示输入的整数值的所有约数
#define _CRT_SECURE_NO_WARNINGS
/*
显示输入的整数值的所有约数
*/
#include <stdio.h>
int main(void)
{
int i, n;
printf("整数值:");
scanf("%d", &n);
for (i = 1; i <= n; i++)
if (n % i == 0)
printf("%d ", i);
putchar('\n');
return 0;
}
4-4 多重循环
4-16显示九九乘法表
#define _CRT_SECURE_NO_WARNINGS
/*
显示九九乘法表
*/
#include <stdio.h>
int main(void)
{
int i, j;
for (i = 1; i <= 9; i++) {
for (j = 1; j <= 9; j++)
printf("%3d", i * j);
putchar('\n'); /* 换行 */
}
return 0;
}
显示图像
4-17画一个长方形
#define _CRT_SECURE_NO_WARNINGS
/*
画一个长方形
*/
#include <stdio.h>
int main(void)
{
int i, j;
int height, width;
puts("让我们来画一个长方形。");
printf("高:"); scanf("%d", &height);
printf("宽:"); scanf("%d", &width);
for (i = 1; i <= height; i++) { /* 长方形有height行 */
for (j = 1; j <= width; j++) /* 显示width 个'*'* */
putchar('*');
putchar('\n'); /* 换行 */
}
return 0;
}
4-18显示直角在左下方的等腰直角三角形
#define _CRT_SECURE_NO_WARNINGS
/*
显示直角在左下方的等腰直角三角形
*/
#include <stdio.h>
int main(void)
{
int i, j, len;
puts("生成直角在左下方的等腰直角三角形。");
printf("短边:");
scanf("%d", &len);
for (i = 1; i <= len; i++) { /* i 行(i = 1, 2, --- , len) */
for (j = 1; j <= i; j++) /* 每行显示i 个'*' */
putchar('*');
putchar('\n'); /* 换行 */
}
return 0;
}
4-19显示直角在右下方的等腰直角三角形
#define _CRT_SECURE_NO_WARNINGS
/*
显示直角在右下方的等腰直角三角形
*/
#include <stdio.h>
int main(void)
{
int i, j, len;
puts("生成直角在右下方的等腰直角三角形。");
printf("短边:");
scanf("%d", &len);
for (i = 1; i <= len; i++) { /* i 行(i = 1, 2, --- , len) */
for (j = 1; j <= len - i; j++) /* 每行显示len-i 个' ' */
putchar(' ');
for (j = 1; j <= i; j++) /* 每行显示i 个'*' */
putchar('*');
putchar('\n'); /* 换行 */
}
return 0;
}
4-5 程序的组成元素和格式
第5章 数组
5-1 数组
5-2 多维数组
#define _CRT_SECURE_NO_WARNINGS
/*
求4名学生在两次考试中3门课程的总分并显示
*/
#include <stdio.h>
int main(void)
{
int i, j;
int tensu1[4][3] = { {91, 63, 78}, {67, 72, 46}, {89, 34, 53}, {32, 54, 34} };
int tensu2[4][3] = { {97, 67, 82}, {73, 43, 46}, {97, 56, 21}, {85, 46, 35} };
int sum[4][3]; /* 总分 */
/* 求两次考试的分数之和 */
for (i = 0; i < 4; i++) { /* 4名学生的 */
for (j = 0; j < 3; j++) /* 3门课程的 */
sum[i][j] = tensu1[i][j] + tensu2[i][j]; /* 两次的分数相加 */
}
/* 显示第一次考试的分数 */
puts("第一次考试的分数");
for (i = 0; i < 4; i++) {
for (j = 0; j < 3; j++)
printf("%4d", tensu1[i][j]);
putchar('\n');
}
/* 显示第二次考试的分数 */
puts("第二次考试的分数");
for (i = 0; i < 4; i++) {
for (j = 0; j < 3; j++)
printf("%4d", tensu2[i][j]);
putchar('\n');
}
/* 显示总分 */
puts("总分");
for (i = 0; i < 4; i++) {
for (j = 0; j < 3; j++)
printf("%4d", sum[i][j]);
putchar('\n');
}
return 0;
}