翁恺老师C语言基础教程代码学习
1、随机数
#include <time.h>
#include <stdio.h>
int main()
{srand(time(0));int a = rand();printf("%d\n",a%100);return 0;
}
2、时间差
#include <stdio,h>
int main(){int hour1, minute1;int hour2, minute2;scanf("%d %d",&hour1,&minute1);scanf("%d %d", &hour2, &minute2);int t1 = hour1 * 60 + minute1;int t2 = hour2 * 60 + minute2;int t = t1 - t2;printf("时间差是%d小时%d分", t / 60, t % 60);return 0;
}
3、素数
3.1
while (1) {int x;scanf("%d", &x);int isPrime = 1;for (int i = 2; i < x; i++) {if (x % i == 0) {isPrime = 0;break;}}if (isPrime == 1) {if (x != 1 && x!=0)printf("是素数\n");elseprintf("不是素数\n");}else {printf("不是素数\n");}
}
3.2
int x;//scanf("%d", &x);for (x = 1; x <= 100; x++) {int i;int isPrime = 1; // x是素数for (i = 2; i < x; i++) {if (x % i == 0) {isPrime = 0;break;}}if (isPrime == 1) {printf("%d ",x);}/*else {printf("不是素数\n");}*/}
3.3
int x;
int cnt = 0;x = 1;
while (cnt < 50) {int i;int isPrime = 1; // x是素数for (i = 2; i < x; i++) {if (x % i == 0) {isPrime = 0;break;}}if (isPrime == 1) {cnt++;printf("%d\t", x);if (cnt % 5 == 0) {printf("\n");}}x++;
}
4、for和goto语句
4.1 简单的for和break语句
int x;
int one, two, five;
int exit = 0;
scanf("%d",&x);
for (one = 1; one < x * 10; one++) {for (two = 1; two < x * 10 / 2; two++) {//2for (five = 1; five < x * 10 / 5; five++) {if (one + two * 2 + five * 5 == x * 10) {printf("可以用%d个角+%d个2角+%d个5角得到%d元\n", one, two, five, x);exit = 1;break;}}if (exit == 1)break;}if (exit == 1)break;
}
4.2 goto语句
int x;
int one, two, five;
scanf("%d", &x);
for (one = 1; one < x * 10; one++) {for (two = 1; two < x * 10 / 2; two++) {//2for (five = 1; five < x * 10 / 5; five++) {if (one + two * 2 + five * 5 == x * 10) {printf("可以用%d个角+%d个2角+%d个5角得到%d元\n", one, two, five, x);goto out;}}}
}
out:
5、求和
5.1
int n;
int i;
double ret = 0.0;
scanf("%d",&n);
for (i = 1; i <= n; i++) {ret += 1.0 / i;
}
printf("%f\n",ret);
5.2
int n;
int i;
double ret = 0.0;
int sign = 1;
scanf("%d",&n);
for (i = 1; i <= n; i++) {ret += sign * 1.0 / i;sign = -sign;
}
printf("%f\n",ret);
6、其它(待整理)
/*int n;
scanf("%d", &n);
int fact = 1;
for (; n>1; n--)
fact *= n;
printf("fact=%d\n",fact);*//****~~素数~~****/
//int x;
//scanf("%d", &x);//int i;
//int isPrime = 1; // x是素数
//for (i = 2; i < x; i++) {
// if (x % i == 0) {
// isPrime = 0;
// break;
// }
//}
//if (isPrime == 1) {
// printf("是素数\n");
//}
//else {
// printf("不是素数\n");
//}
/****~~素数~~****/
//int x;
//int cnt = 0;//x = 1;
//while (cnt < 50) {
// int i;
// int isPrime = 1; // x是素数
// for (i = 2; i < x; i++) {
// if (x % i == 0) {
// isPrime = 0;
// break;
// }
// }
// if (x == 1) {
// isPrime = 0;
// }
// if (isPrime == 1) {
// cnt++;
// printf("%d\t", x);
// if (cnt % 5 == 0) {
// printf("\n");
// }
// }
// x++;
//}
/****~~整数分解~~****/
//int x;
///*scanf("%d", &x);*/
//x = 7000;
//int mask = 1;
//int t = x;
//while (t > 9) {
// t /= 10;//700 70 7
// mask *= 10;//10 100 1000
//}
//printf("x=%d,mask=%d\n",x,mask);//do {
// int d = x / mask;//7
// printf("%d", d);
// if (mask > 9) {
// printf(" ");//7
// }
// x %= mask;//0 0 0
// mask /= 10;//100 10 1 0
//} while (mask > 0);
//printf("\n");/****~~给定条件的整数集~~****/
//int a;
//scanf("%d", &a);//a=2
//int i, j, k;
//int cnt = 0;
//i = a;
//while (i <= a + 3) {
// j = a;
// while (j <= a + 3) {
// k = a;
// while (k <= a + 3) {
// if (i != j) {
// if (i != k) {
// if (j != k) {
// cnt++;
// printf("%d%d%d",i,j,k);
// if (cnt == 6) {
// printf("\n");
// cnt = 0;
// }
// else
// printf(" ");
// }
// }
// }
// k++;
// }
// j++;
// }
// i++;
//}/****~~水仙花数~~****/
//int n;
////scanf("%d",&n);
//n = 3;
//int first = 1;
//int i = 1;
//while (i < n) {
// first *= 10;
// i++;
//}
//printf("first=%d\n",first);
////遍历100-999
//i = first;
//while (i < first * 10) {
// int t = i;
// int sum = 0;
// do {
// int d = t % 10;
// t /= 10;
// int p = d;
// int j = 1;
// while (j < n) {
// p *= d;
// j++;
// }
// sum += p;
// } while ( t>0 );
// if (sum == i) {
// printf("%d\n",i);
// }
// i++;
//}/****~~九九乘法表~~****/
/*int n;
scanf("%d", &n);
n = 9;
int i, j;
i = 1;
while (i <= n) {
j = 1;
while (j <= i) {
printf("%d*%d=%d",j,i,i*j);
if (i*j < 10) {
printf(" ");
}
else {
printf(" ");
}
j++;
}
printf("\n");
i++;
}*//****~~统计素数求和~~****/
int m, n;
int i;
int cnt = 0;
int sum = 0;
scanf("%d %d",&m,&n);
if (m == 1) {
m = 2;
}
for (i = m; i < n; i++) {
int isPrime = 1;
int k;
for (k = 2; k < i - 1; k++) {
if (i % k == 0) {
isPrime = 0;
break;
}
}
//判断i是否是素数
if (isPrime) {
cnt++;
sum += i;
}
}
printf("%d %d\n", cnt, sum);/****~~猜数游戏~~****/
/*int number, n;
int inp = 0;
int finished = 0;
int cnt = 0;
scanf("%d %d", &number, &n);
do {
scanf("%d", inp);
cnt++;
if (inp < 0) {
printf("Game Over\n");
finished = 1;
}
else if (inp > number) {
printf("Top big\n");
}
else if (inp < number) {
printf("Too small\n");
}
else {
if (cnt == 1) {
printf("Bingo!\n");
}
else if (cnt <= 3) {
printf("Lucky You!\n");
}
else {
printf("Good Guess!\n");
}
finished = 1;
}
if (cnt == n) {
if (!finished) {
printf("Game Over\n");
finished = 1;
}
}
} while (!finished);*/
/****~~n项求和~~****/
//int n;
//double dividend, divisor;
//double sum = 0.0;
//int i;
//double t;
//scanf("%d", &n);
////n = 2000;
//dividend = 2;
//divisor = 1;
//for (i = 1; i <= n; i++) {
// sum += dividend / divisor;
// t = dividend;
// dividend = dividend + divisor;
// divisor = t;
//}
//printf("%f %f\n", dividend, divisor);
//printf("%.2f\n", sum);
/****~~约分最简分式~~****/
//int dividend, divisor;
//scanf("%d/%d", ÷nd, &divisor);
//int a = dividend;
//int b = divisor;
//int t;
//while (b > 0) {
// t = a % b;
// a = b;
// b = t;
//}
//printf("%d/%d\n", dividend / a, divisor / a);
/****~~念数字~~****/
/*int x;
scanf("%d", &x);
if (x < 0) {
printf("fu ");
x = -x;
}int mask = 1;
int t = x;
while (t > 9) {
t /= 10;
mask *= 10;
}do {
int d = x / mask;
switch (d) {
case 0:printf("ling"); break;
case 1:printf("yi"); break;
case 2:printf("er"); break;
case 3:printf("san"); break;
case 4:printf("si"); break;
case 5:printf("wu"); break;
case 6:printf("liu"); break;
case 7:printf("qi"); break;
case 8:printf("ba"); break;
case 9:printf("jiu"); break;
}
if (mask > 9)printf(" ");
x %= mask;
mask /= 10;
} while (mask > 0);
printf("\n");*/
/****~~求a的连续和~~****/
//int a, n;
//scanf("%d %d", &a, &n);
//int sum = 0;
//int i;
//int t = 0;
////0*10+2 2*10+2 (2*10+2)*10+2
//for (i = 0; i < n; i++) {
// t = t * 10 + a;
// sum += t;
//}
//printf("%d\n", sum);