一些C语言错题
//求n的阶乘
int sum=1;
int n;
printf("请输入n的值:");
scanf("%d",&n);
for (int j = 1; j < n+1; ++j) {
sum*=j;
}
printf("%d\n",sum);
int hee=0;
int b=1;
for ( int j = 1; j <= 3; j++) {
b *= j; // 计算n的阶乘
hee += b; // 将n的阶乘加到总和中
}
printf("%d",hee);
//模拟用户登录 只能登陆三次(即输入三次密码)
int a;
int i;
int b = 123456;
for (i = 0; i < 3; i++) {
printf("请输入密码:");
scanf("%d", &a);
if (a == b) {
printf("密码正确");
break;
} else {
printf("密码不正确\n");
}
}
if (i == 3)
printf("输入次数超过三次");
// 中间排除法
int arr[]={1,2,3,4,5,6,7,8,9,10};
int size=sizeof(arr)/sizeof(arr[0]); //数组长度
int left=0;
int right=size-1;
int k=7;
//只有左下标小于等于右下标才能进行循环
while (left<=right) {
int a = (left + right) / 2;
if (arr[a] > k) {
//如果一半大于要找的数 右下标变成中间那个+1
right = a + 1;
} else if (arr[a] < k) {
//如果一半小于要找的数 左下标变成中间那个+1
left = a + 1;
} else {
printf("%d\n", a);
break;
}
}
if(left>right){
printf("找不到");
}
int a=3;
a+=a-=a*=a;
printf("%d",a);
double x=1, y;
y = x + 3 / 2;
printf("%lf", y);
int i=0,j=0;
for (; i < 10; ++i){
for (; j < 10; ++j){
printf("a");
}
}
//视频编程题1 三个数从大到小输出
int main(){
int a,b,c;
int max,mid,min;
printf("请输出第一个数:");
scanf("%d",&a);
printf("请输出第二个数:");
scanf("%d",&b);
printf("请输出第三个数:");
scanf("%d",&c);
max=a>b?(a>c?a:c):(b>c?b:c);
min=a<b?(a<c?a:c):(b<c?b:c);
mid=a+b+c-max-min;
printf("从大到小为:");
printf("%d ",max);
printf("%d ",mid);
printf("%d ",min);
}
//视频编程题2 打印1-100之间所有3的倍数的数字
int main(){
for (int i = 1; i < 101; ++i) {
if(i%3==0){
printf("%d ",i);
}
}
}
//视频编程题3 给两个数 求最大公约数
int main(){
int a,b;
printf("请输出第一个数:");
scanf("%d",&a);
printf("请输出第二个数:");
scanf("%d",&b);
//这是为了假设 因为后面循环的是a%b
if(a<b){
int c=a;
a=b;
b=c;
}
int c;
while (b!=0){
c=a%b;
a=b;
b=c;
}
printf("最大公约数为:%d",a);
}
//视频编程题4 打印1000年到2000年之间的闰年
int main() {
for (int i = 1000; i < 2001; i++) {
if (i % 4 == 0 || i % 400 == 0 && i % 100 != 0) {
printf("%d ", i);
}
}
}
//视频编程题5 打印100-200之间的素数
质数又称素数 一个大于1的自然数,除了1和它本身外,不能被其他自然数(质数)整除
如果一个数可以写成 i=a*b 那a或者b 一定<=根号i
#include<math.h>
int main() {
for (int i = 100; i < 201; ++i) {
int j=0;
for(j=2;j<=sqrt(i);j++){
if(i%j==0){
break;
}
}
if(j> sqrt(i)){
printf("%d ", i);
}
}
}
int main() {
int a = 0, b = 0;
for (a = 1, b = 1; a < 101; a++) {
if (b > 21) break;
if (b % 3 == 1) {
b = b + 3;
continue;
}
b = b - 5;
}
printf("%d ", a);
}
//视频编程题6 1-100整数中出现多少个数字9
int main() {
int count = 0;
for (int i = 1; i < 101; ++i) {
// 1-90 100
if (i % 10 == 9) {
count++;
}
//90-99
else if (i / 10 == 9) {
count++;
}
}
printf("%d", count);
}
//视频编程题7 计算1/1-1/2+1/3-1/4........1/99+-1/100值
int main() {
double sum = 0;
int f=1;
for (int i = 1; i < 101; ++i) {
//1/1=1 1/2=0......... 1/88=0
//刚开始f=1 对应i=1 然后f=-1 对应i=2 然后f=-(-1)=1 对应i=3.........
sum +=f* 1.0 / i;
//f变成-1
f=-f;
}
printf("%.1lf", sum);
}
//视频编程题8 求10个整数中最大值
int main(){
int a[9];
//max=0错误 如果为负数那么0最大 实际上你并未输入0
int max=a[0];
for (int i = 0; i < 10; ++i) {
printf("输入数字:");
scanf("%d",&a[i]);
if(a[i]>max){
max=a[i];
}
}
printf("%d",max);
}
//视频编程题9 乘法口诀表
int main() {
for (int i = 1; i <10; i++) {
for (int j = 1; j <i+1; j++) {
printf("%d*%d=%d\t", j, i, i * j);
}
printf("\n"); // 每行结束后换行
}
}
标签:16,int,scanf,编程,++,C语言,错题,printf,main
From: https://www.cnblogs.com/gaodiyuanjin/p/18114561