新开C语言专栏整理一下学C的艰苦之路,先从看书+视频开始。
整理了《明解C语言》入门篇第四章练习的“参考答案”,记录一下学习的过程。直接上代码。
int main()
{
int retry;
do
{
int no;
printf("请输入一个整数:");
scanf("%d", &no);
if (no == 0)
puts("该整数为0");
else if (no > 0)
puts("该整数为正数");
else
puts("该整数为负数");
printf("是否继续,继续请输入0,否则输入其他退出:");
scanf("%d", &retry);
} while (retry == 0);
return 0;
}
int main()
{
int retry;
do
{
int no;
printf("请输入一个整数:");
scanf("%d", &no);
if (no == 0)
puts("该整数为0");
else if (no > 0)
puts("该整数为正数");
else
puts("该整数为负数");
printf("是否继续,继续请输入0,否则输入其他退出:");
scanf("%d", &retry);
} while (retry == 0);
return 0;
}
int main()
{
int no;
printf("请输入一个正整数:");
scanf("%d", &no);
int a;
a = no;
while (a >= 0)
{
printf("%d ", a--);
no--;
}
no--;
if (no >= 0);
printf("\n");
return 0;
}
int main()
{
int no;
printf("请输入一个正整数:");
scanf("%d", &no);
int a;
a = no;
while (a>= 1)
{
printf("%d ", a--);
no--;
}
no--;
do
{
printf("\n");
} while (no >= 0);
return 0;
}
int main()
{
int i, no;
printf("请输入一个正整数:");
scanf("%d", &no);
i = 1;
while (i <= no)
printf("%d ", i++);
if (no >= 0)
printf("\n");
return 0;
}
int main()
{
int i, no;
printf("请输入一个整数:");
scanf("%d", &no);
i = 2;
while (i <= no)
{
printf("%d ", i);
i += 2;
}
if(no>=0)
printf("\n");
return 0;
}
int main()
{
int i, no;
printf("请输入一个整数:");
scanf("%d", &no);
i = 2;
while (i <= no)
{
printf("%d ", i);
i *= 2;
}
if(no>=0)
printf("\n");
return 0;
}
int main()
{
int a,no;
printf("正整数:");
scanf("%d", &no);
a = no;
while (no-- > 0)
putchar('*');
if (a>1)
putchar('\n');
return 0;
}
int main()
{
int a;
int i=0;
printf("正整数:");
scanf("%d", &a);
while (i < a - 1)
{
putchar('+');
i++;
putchar('-');
i++;
}
if(i
int main()
{
int a;
int i=0;
printf("正整数:");
scanf("%d", &a);
while (i
int main()
{
int no;
do{
printf("请输入一个正整数:");
scanf("%d", &no);
printf("%d逆向显示的结果是:", no);
if (no <= 0)
puts("\n请不要输入非正整数。");
} while (no <= 0);
while (no > 0) {
printf("%d", no % 10);
no /= 10;
}
puts("。");
return 0;
}
int main()
{ int no;
int i=0;
do{
printf("请输入一个正整数:");
scanf("%d", &no);
printf("%d的位数是:",no);
if (no <= 0)
puts("\n请不要输入非正整数。");
} while (no <= 0);
while (no > 0)
{
no /= 10;
i++;
}
printf("%d。", i);
return 0;
}
int main()
{
int n;
int i;
int sum=0;
printf("n的值:");
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
sum += i;
}
printf("1到%d的和为%d", n, sum);
return 0;
}
int main()
{
int n;
int i=1;
int j;
printf("请输入一个整数:");
scanf("%d", &n);
for (j = 1; j <= 25; j++)
{
printf("%d", i);
i++;
while (i == 10)
{
i = 0;
}
}
return 0;
}
int main()
{
int a;
int b;
int c;
int i=0;
int j;
printf("开始数值(cm):");
scanf("%d", &a);
printf("结束数值(cm):");
scanf("%d", &b);
printf("间隔数值(cm):");
scanf("%d", &c);
for (i = a; i <= b; i += c)
{
j = (i - 100) * 0.9;
printf("%dcm %dkg\n", i, j);
}
return 0;
//标准体重=(身高-100)*0.9
}
int main()
{
int n;
int i=0;
printf("整数值:");
scanf("%d", &n);
for (i = 1; i <= n; i+=2)
printf("%d ", i);
return 0;
}
int main()
{
int n;
int i;
int j = 0;
printf("n的值:");
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
j = i * i;
printf("%d的二次方是:%d\n", i, j);
}
return 0;
}
int main()
{
int n;
int i;
printf("显示多少个*:");
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
printf("*");
if (i % 5 == 0)
printf("\n");
}
return 0;
}
int main()
{
int i, n;
int j=0;
printf("整数值:");
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
if (n % i == 0)
{
printf("%d", i);
putchar('\n');
j++;
}
}
printf("约数有%d个", j);
return 0;
}
//%3d输出数值至少为3位
int main()
{
int i;
int j=0;
printf(" |");
printf(" 1 2 3 4 5 6 7 8 9\n" );
printf("-------------------------------\n");
for (i = 1; i <= 9; i++)
{
printf("%d |", i);
for (j = 1; j <= 9; j++)
printf("%3d", i * j);
putchar('\n');
}
return 0;
}
int main()
{
int i;
int n;
printf("生成一个正方形\n");
printf("正方形有几层:");
scanf("%d", &n);
for (i = 1; i <= n*n; i++)
{
putchar('*');
if (i % n == 0)
putchar('\n');
}
return 0;
}
int main()
{
int i;
int j;
int a;
int b;
int tmp;
puts("让我们来画一个长方形。");
printf("一边:"); scanf("%d", &a);
printf("另一边:"); scanf("%d", &b);
if (a > b)
{
tmp = a;
a = b;
b = tmp;//使得b始终大于a
}
for (i = 1; i <= a; i++)
{
for (j = 1; j <= b; j++)
putchar('*');
putchar('\n');
}
return 0;
}
int main()
{
int i;
int j;
int len;
puts("生成直角在左上方的等腰直角三角形");
printf("短边:");
scanf("%d", &len);
for (i = 1; i <=len; i++)
{
for (j = 1; j<=len-i+1;j++)
putchar('*');
putchar('\n');
}
return 0;
}
int main()
{
int i=0;
int j;
int len;
puts("生成直角在右上方的等腰直角三角形");
printf("短边:");
scanf("%d", &len);
for(i=1;i<=len;i++)
{
for (j = 1; j < i; j++)
putchar(' ');
for (j = 1; j <= len - i + 1; j++)
putchar('*');
putchar('\n');
}
return 0;
}
int main()
{
int i;
int j;
int len;
printf("让我们来画一个金字塔。\n");
printf("金字塔有几层:");
scanf("%d", &len);
for (i = 1; i <=len; i++)
{
for(j=1;j<=len-i;j++)
putchar(' ');
for (j = 1; j <= (i - 1) * 2; j++)
{
putchar('*');
}
putchar('*');
putchar('\n');
}
return 0;
}
int main()
{
int i;
int j;
int len;
printf("让我们来画一个向下的金字塔。\n");
printf("金字塔有几层:");
scanf("%d", &len);
for (i = 1; i <= len; i++)
{
for (j = 1; j <= i-1; j++)
{
putchar(' ');
}
for (j = 3; j >= (i-1)*2-1; j--)
printf("%d", i % 10);
putchar('\n');
}
return 0;
}