实验任务1
task1
代码:
#include <stdio.h> int main() { printf(" O \n"); printf("<H>\n"); printf("I I\n"); return 0; }
运行结果:
task1_1
代码:
#include <stdio.h> int main() { printf(" O \n"); printf("<H>\n"); printf("I I\n"); printf(" O \n"); printf("<H>\n"); printf("I I\n"); return 0; }
运行结果:
task1_2
代码:
#include <stdio.h> int main() { printf(" O O\n"); printf("<H> <H>\n"); printf("I I I I\n"); return 0; }
运行结果:
task2
代码:
// 1+2+3+...+n (设n的取值在100以内) // 用数学归纳法 (求和公式计算) #include <stdio.h> int main() { int n, sum; // 从键盘上输入一个十进制整数给n scanf("%d", &n); // 待补足代码 // sum = n*(n+1)/2; /*int i=0; while(i<=n) { sum+=i; i++; } */ // 打印输出求和结果 printf("sum = %d\n", sum); return 0; }
运行结果:
讨论:
其中 写法3:sum = n/2*(n+1) 和 写法4: sum = (n+1)/2*n 不能符合题目要求。 因为n为int数据类型,当程序执行到(n+1)/2时会自动舍去数据的小数位导致结果错误。 同理当n为奇数时n/2会导致小数部分丢失,结果错误。 task3 代码:#include <stdio.h> int main() { int a, b, t; a = 3; b = 4; printf("a = %d, b = %d\n", a, b); t = a; a = b; b = t; printf("a = %d, b = %d\n", a, b); return 0; }运行结果: 讨论: line11-13实现的功能为交换a, b两个变量的值。 task4 代码:
#include <stdio.h> int main() { int x, t, m; x = 123; printf("x = %d\n", x); t = 0; m = x % 10; t = t *10 + m; x = x / 10; m = x % 10; t = t * 10 + m; x = x / 10; m = x % 10; t = t * 10 + m; x = x / 10; printf("t = %d\n", t); return 0; }运行结果:
讨论:
代码line10-22组合起来实现的功能是将给定的三位数的各位数字交换位置。
task5
代码:
// 从键盘上输入三个数据作为三角形边长,判断其能否构成三角形 // 构成三角形的条件: 任意两边之和大于第三边 #include <stdio.h> int main() { float a, b, c; // 输入三边边长 scanf("%f%f%f", &a, &b, &c); // 判断能否构成三角形 // 补足括号里的逻辑表达式 if(a+b>c&&abs(a-b)<c) printf("能构成三角形\n"); else printf("不能构成三角形\n"); return 0; }
运行结果:
task6
代码:
// 计算10亿秒约等于多少年,并打印输出 #include <stdio.h> int main() { int year; // 补足代码 //year=1e9/60/60/24/365; year=1e9/31556926; printf("10亿秒约等于%d年\n", year); return 0; }
运行结果:
task7
代码:
// 生成一个[60, 100]区间之间的随机整数,并打印输出 #include <stdio.h> #include<stdlib.h> #include<time.h> int main() { int n; srand((unsigned)time(NULL)); n = rand() % 41 + 60; printf("n = %d\n", n); return 0; }
运行结果:
task8
代码:
#include <stdio.h> int main() { char ans1, ans2; printf("每次课前认真预习、课后及时复习了没? (输入y或Y表示有,输入n或N表示没有) : "); ans1 = getchar(); // 从键盘输入一个字符,赋值给ans1 getchar(); // 思考这里为什么要加这一行。试着去掉这一行,看看对运行有没有影响。 printf("\n动手敲代码实践了没? (输入y或Y表示敲了,输入n或N表示木有敲) : "); ans2 = getchar(); if ((ans1 == 'y'||ans1 == 'Y') && (ans2 == 'y'||ans2 == 'Y')) // 待补足,判断用户回答ans1和ans2都是小写y或大写Y printf("\n罗马不是一天建成的, 继续保持哦:)\n"); else printf("\n罗马不是一天毁灭的, 我们来建设吧\n"); return 0; }
运行结果:
标签:10,main,int,代码,实验,printf,include From: https://www.cnblogs.com/lolol954321/p/17172434.html