练习4-1
#include <stdio.h>
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;
}
练习4-2
#include <stdio.h>
int main()
{
int a,b;
int sum = 0;
int x;
puts("请输入两个整数。");
printf("整数a:"); scanf("%d", &a);
printf("整数b:"); scanf("%d", &b);
x=a;
do{
sum+=x;
x--;
} while (x!=b-1);
printf("大于等于%d小于等于%d的所有整数的和是%d",b,a,sum);
return 0;
}
//方法2
int main()
{
int a = 0, b = 0, sum = 0;
puts("请输入两个整数");
printf("整数a:"); scanf("%d", &a);
printf("整数b:"); scanf("%d", &b);
if (a > b) //始终是左大右小
{
int c = a;
a = b;
b = c;
}
do
{
sum += a;
a++;
} while (a <= b);
printf("大于等于%d小于等于%d的所有整数的和是%d", a, b, sum);
return 0;
}
练习4-3
#include<stdio.h>
int main()
{
int a = 0;
printf("请输入一个正整数:");
scanf("%d", &a);
while (a>=0)
{
printf("%d", a);
a--;
}
if(a>=0)
printf("\n");
return 0;
}
练习4-4
#include <stdio.h>
int main(void)
{
int no;
printf("请输入一个正整数:");
scanf("%d", &no);
while (no >= 1){
printf("%d ", no--); /* no的值在显示之后递减 */
}
if (no >= 1) {
printf("\n");
} /* 换行 */
return 0;
}
练习4-5
#include <stdio.h>
int main(void)
{
int i=1, no;
printf("请输入一个正整数:");
scanf("%d", &no);
while (i <= no){
printf("%d ", i++); /* i的值在显示之后递增 */
}
if (no >= 0) {
printf("\n");
} /* 换行 */
return 0;
}
练习4-6
#include <stdio.h>
int main(void)
{
int no;
int i=1;
printf("请输入一个正整数:");
scanf("%d", &no);
while (i < no) {
if ((i % 2)==0) {
printf("%d ", i);
}
i++;
}
return 0;
}
练习4-7
#include <stdio.h>
int main(void)
{
int n1, n2=2;
printf("请输入一个整数:");
scanf("%d", &n1);
while (n2 < n1) {
printf("%d ", n2);
n2 *= 2;
}
putchar('\n');
return 0;
}
练习4-8
#include <stdio.h>
int main(void)
{
int no;
printf("正整数");
scanf("%d", &no);
while (no-- > 0) {
putchar('*');
}
if (no >= 0)
putchar('\n');
return 0;
}
练习4-9
#include<stdio.h>
int main()
{
int a = 0, i = 0;
printf("正整数:");
scanf("%d", &a);
while (i < a)
{
if (a % 2 != 0)
{
printf("+");
a--;
}
else
{
printf("-");
a--;
}
}
return 0;
}
练习4-10
#include <stdio.h>
int main(void)
{
int no;
printf("正整数:");
scanf("%d", &no);
while (no-- > 0) {
putchar('*');
putchar('\n');
}
return 0;
}
练习4-11
#include <stdio.h>
int main(void)
{
int no;
do {
printf("请输入一个正整数:");
scanf("%d", &no);
if (no <= 0)
puts("\a请不要输入非正整数。");
} while (no <= 0);
int x = no;
printf("%d逆向显示的结果是",x);
while (no > 0) {
printf("%d",no % 10); /* 显示最后一位数 */
no /= 10; /* 右移一位 */
}
return 0;
}
练习4-12
#include <stdio.h>
int main(void)
{
int no;
int x;
int i=0;
printf("请输入一个正整数:");
scanf("%d", &no);
x = no;
while (no>0)
{
no/=10;
i++;
}
printf("%d的位数是%d", x,i);
return 0;
}
练习4-13
#include <stdio.h>
int main(void)
{
int n;
int i;
int sum = 0;
printf("n的值:");
scanf("%d", &n);
for (i = 0; i <= n; i++) {
sum += i;
}
printf("1到%d的和为%d", i-1, sum);
return 0;
}
练习4-14
#include <stdio.h>
/* int main(void)
{
int no;
int i;
printf("请输入一个整数:");
scanf("%d", &no);
for (i = 1; i <=no; i++) {
printf("%d",i%10);
}
return 0;
} */
int main()
{
int i=1,j;
puts("请输入一个正整数");
do
{
printf("j = ");
scanf("%d",&j);
if(j <= 0){
puts("请输入一个正整数");
}
}while(j <= 0);
for (i = 1; i <= j; i++) {
printf("%d",i%10);
}
return 0;
}
练习4-15
#include <stdio.h>
int main(void)
{
int begin;
int final;
int interval;
printf("开始数值(cm):");
scanf("%d", &begin);
printf("结束数值(cm):");
scanf("%d", &final);
printf("间隔数值(cm):");
scanf("%d", &interval);
int i;
int x = begin;
for (i = 0; i <=(final - x) / interval; i++) {
printf("%dcm\t%.2fkg", begin, (begin - 100) * 0.9);
putchar('\n');
begin += interval;
}
return 0;
}
练习4-16
#include <stdio.h>
/* int main(void)
{
int no;
int i;
printf("整数值:");
scanf("%d", &no);
putchar('\n');
for (i = 1; i <=no; i += 2) {
printf("%d ", i);
}
return 0;
} */
int main()
{
int i;
puts("请输入一个正整数");
do{
printf("i = ");
scanf("%d",&i);
if(i <= 0){
puts("请输入一个正整数");
}
}while(i <= 0);
for ( ;i >= 1;i--) {
if(i%2 == 1)
printf("%d ",i);
}
return 0;
}
练习4-17
#include <stdio.h>
int main(void)
{
int n;
printf("n的值是:");
scanf("%d",&n);
int i;
for (i = 1; i <= n; i++) {
printf("%d的二次方是%d",i,i*i);
putchar('\n');
}
return 0;
}
练习4-18
#include <stdio.h>
int main(void)
{
int n;
printf("显示多少个*:");
scanf("%d",&n);
int i;
for (i = 1; i <= n; i++) {
putchar('*');
if (i % 5 == 0) {
putchar('\n');
}
}
return 0;
}
练习4-19
#include <stdio.h>
int main(void)
{
int i, n;
int m = 0;
printf("整数值:");
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
if (n % i == 0)
{
printf("%d ", i);
putchar('\n');
m++;
}
}
printf("约数有%d个。", m);
return 0;
}
练习4-20
#include <stdio.h>
int main(void)
{
int i, j;
printf(" |");
for (i = 1; i <= 9; i++)
{
printf("%3d", i);
}
putchar('\n');
puts("------------------------------");
for (i = 1; i <= 9; i++)
{
printf("%d |", i);
for (j = 1; j <= 9; j++)
{
printf("%3d", i * j);
}
putchar('\n');
}
return 0;
}
练习4-21
#include <stdio.h>
int main(void)
{
int height;
int i, j;
printf("生成一个正方形\n");
printf("正方形有几层:");
scanf("%d", &height);
for (i = 0; i < height; i++) {
for (j = 0; j < height; j++) {
putchar('*');
}
putchar('\n');
}
}
练习4-22
#include <stdio.h>
int main(void)
{
int a,b;
int i, j;
int height;
int length;
printf("让我们画一个长方形\n");
printf("一边:");
scanf("%d", &a);
printf("另一边:");
scanf("%d", &b);
length = (a > b) ? a : b;
height = (a < b) ? a : b;
for (i = 0; i < height; i++) {
for (j = 0; j < length; j++) {
putchar('*');
}
putchar('\n');
}
}
练习4-23
#include <stdio.h>
int main(void)
{
int i, j, len;
puts("生成直角在左上方的等腰直角三角形。");
printf("短边:");
scanf("%d", &len);
for (i = len; i >= 0; i--) { //i 行(i = 1, 2, --- , len)
for (j = 1; j <= i; j++) // 每行显示i 个'*'
putchar('*');
putchar('\n'); //换行
}
return 0;
}
//
#include <stdio.h>
int main(void)
{
int i, j, len;
puts("生成直角在右上方的等腰直角三角形。");
printf("短边:");
scanf("%d", &len);
for (i = len; i >=0; i--) { //i 行(i = 1, 2, --- , len)
for (j = 1; j <= len - i; j++) // 每行显示len-i 个' '
putchar(' ');
for (j = 1; j <= i; j++) // 每行显示i 个'*'
putchar('*');
putchar('\n'); // 换行
}
return 0;
}
练习4-24
#include <stdio.h>
int main()
{
int a,i,j;
puts("请输入一个正整数");
scanf("%d",&a);
for(i=0;i<=a;i++)
{
for(j=0;j<a-i;j++)
{
printf(" ");
}
for(j=0;j<2*i-1;j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
练习4-25
#include <stdio.h>
int main()
{
int i,j,len;
printf("金字塔有几层:");
scanf("%d", &len);
for (i = 1; i <= len; i++) {
for (j = 0; j < i - 1; j++)
{
printf(" ");
}
for (j = 0; j < (len - i) * 2 + 1; j++) {
printf("%d", i%10);
}
putchar('\n');
}
}