#include<stdio.h> intmain() { int n; //输入值 int m; //辅助判断 int k; //除数 scanf_s("%d", &n); for (k = 2; k <= n; k++) //k用作除数,用于判断是否为素数 { m = n % k; //取余 if (m == 0) break; //break满足if条件后跳出for循环 } if (k >= n) { printf("%d是素数\n", n); } else { printf("%d不是素数\n", n); } return0; }
习题4(1)
交换两个变量的值.
1 2 3 4 5 6 7 8 9 10 11 12 13 14
#include<stdio.h> intmain() { int a, b, c; //c作为中间变量 printf("请输入两个整数值用于交换,中间用英文逗号分隔\n"); scanf_s("%d,%d", &a, &b); c = b; b = a; a = c; printf("交换后,它们的值如下\n"); printf("a=%d\n", a); printf("b=%d\n", b); return0; }
作业1
判断一个数能否同时被3和5整除.
1 2 3 4 5 6 7 8 9 10 11 12 13
#include<stdio.h> intmain() { int a; printf("请输入一个整数值\n"); scanf_s("%d",&a); if (a % 3 == 0 && a % 5 == 0) //逻辑运算符 且&& printf("这个数能够同时被3和5整除\n"); else printf("这个数不能同时被3和5整除\n");
return0; }
习题4(2)
依次输入10个数,输出其中的最大值.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#include<stdio.h> intmain() { int n, max, i = 1; printf("请依次输入10个整数值\n"); scanf_s("%d", &n); max = n; while (i <= 9) //第一个数在while循环前面,所以这里是9 { printf("请继续\n"); scanf_s("%d", &n); if (n > max)max = n; //打擂台 i = i + 1; } printf("max=%d\n", max); return0; }
#include<stdio.h> intmain() { int a,b,c,t; printf("请输入3个整数值,中间用英文逗号分隔\n"); scanf_s("%d,%d,%d", &a,&b,&c); if (a < b) { //如果a<b,就将a,b互换位置,下面以此类推,最后达到排序的目的 t = a; a = b; b = t; } if (a < c) { t = a; a = c; c = t; } if (b < c) { t = b; b = c; c = t; } printf("从大到小依次为: %d,%d,%d \n",a,b,c); return0; }
int m, n, t, r; //m , n为两个随机数;t为中间变量用于交换;r为余数 printf("请输入两个数,中间用英文逗号分隔\n"); scanf_s("%d,%d",&m,&n); if (n == 0) //为了保证分母n不是0,将分子m和n交换,分子换成0,分母换成不是0的数,因为分母为0会报错 { t = m; m = n; n = t; } //辗转相除法-求最大公约数 while (m % n != 0) { //若m%n不为0,循环执行以下语句 r = m % n; //取余存r m = n; n = r; } //若m%n为0,则跳出循环,此时得到的r则是最大公约数 printf("最大公约数为:%d\n",n); system("pause"); return0; }
#include<stdio.h> intmain(){ printf("请输入你需要转换大小写的字母\n"); int d1,d2; d1=getchar(); if (d1<91 ){ d2=d1+32; } else{ d2=d1-32; } printf("%c\n",d2); return0; }
第五章
习题3
求两个正整数m和n的最大公约数和最小公倍数.
直接求最小公倍数.
1 2 3 4 5 6 7 8 9 10 11 12 13
#include<stdio.h> intmain() { int m, n, a, b, i = 0; scanf_s("%d,%d", &n, &m); do { i++; a = m * i; b = a % n; } while (b != 0); printf("%d", m * i); }
假设m,n的最大公约数为a,那么他们的最小公倍数就为m*n/a.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#include<stdio.h> intmain() { int a, b, m, n, i, h; scanf_s("%d,%d", &m, &n); a = m; b = n; do { i = a; a = b % a; b = i; } while (a != 0); h = m * n / b; printf("%d", h); return0; }