C++初学--循环的使用

来源:互联网 发布:微博个性域名格式 编辑:程序博客网 时间:2024/06/06 06:38

刚开通不久,这里的高手和资源真的很多,好好利用这里的资源,努力学好C++。

下面是我刚写的关于循环的练习,记录一下:各位大神不要见笑啊



#include <stdio.h>


#include <windows.h>


//作业1
//---------------------------------------------------------------------------
// Print *
//---------------------------------------------------------------------------
// *
// ***
//   *****
//      *******
//     *********
/*//运行正确
void main(void)
{
int num1;
num1 = 1;


for(;num1<=5;num1++){//行数5


int num2;
int num3;
num3 = 0;
for(;num3<5-num1;num3++){//用行数去控制空格,关系5-num1
printf(" ");
}


num2 = 0;
for(;num2<2*num1-1;num2++){//用行数去控制*号,关系为2*num1-1
printf("*");
}
printf("\n");
}
} */




//作业2
//---------------------------------------------------------------------------
//   : 计算 
//---------------------------------------------------------------------------
// 1-2+3-4+5-6+ ... +99-100
// 变换为 (1+3+5+ ... +99) - (2+4+6+ ... +100)
/* //运行正确
void main(void)
{
int num1;
int num2;
int result;
num1 = 1;
num2 = 2;
result = 0;
for(;num1<=100;){//计算加法


result += num1;
num1 = num1 + 2;
}
for(;num2<=100;){//计算减法


result -= num2;
num2 = num2 + 2;
}
printf("%d",result);
} */


//作业3
//---------------------------------------------------------------------------
//  计算器 :  
//---------------------------------------------------------------------------
// + - * / % 次方
//   清屏,错误验证和连续计算
// 学到知识:有个警告scanf和scanf_s的区别
//scanf_s提供更安全一些的机制 ,以防止溢出;scanf()在读取时不检查边界,所以可能会造成内在泄露。
//运行正确
/*
void main(void)
{
int num1;
int num2;
int result;
int i;
char c;
i = 0;
num1 = 0;
num2 = 0;
result = 0;
c = '0';


printf("Enter two data: \n");


for(;;){ //可以连续计算-死循环
scanf("%d",&num1);
fflush(stdin);
c = getchar();
scanf("%d",&num2);
if ('^' == c)
{
printf(" Enter a DATA : \n");
scanf("%d",&num1);
}else{



switch(c){
case '+':


result = num1 + num2;
break;
case '-': 


result = num1 - num2;
break;
case '*':


result = num1 * num2;
break;
case '/':


if (0 == num2)
{
printf("Error!\n");

else
{
result = num1 / num2;
}
break;
case '%':
if ( 0 == num2)
{
printf("Error!\n");

else
{
result = num1 % num2;
}
break;
case '^' :


int num3,num4;
num3 = 1;
num4 = 1;
printf("Enter a data: \n");
scanf("%d",&num3);
for (;num3 > 0;num3--)
{
num4 = num1 * num4;
}
result = num4;
break;
}
//fflush(stdin);
if(('/' == c && 0 == num2)||('%' == c && 0 == num2)){//出现错误的时候不打印

}
else{


printf("%d\n",result);
}
i++;
printf("输入的次数:%d,请再次输入数据 :\n",i);
//输入次数达到5次,延时两秒清屏,等再次输入数据
Sleep(2000);
if (5 == i)
{
system("cls");
printf("请再次输入数据 :\n");
}
}
}*/




//作业4
//---------------------------------------------------------------------------
//  计算:  
//---------------------------------------------------------------------------
// 0~5的6位数的排列组合方式
//分析:每一位都是6种可能,6*6*6*6*6*6
//运行正确
/*
void main(void)
{
int num1;
int result;
num1 = 0;


result = 0;
for (;num1<6;num1++){//第一位6种
int num2; //需要重置,每次都是6种可能
num2 = 0;
for (;num2<6;num2++){//第二种6位
int num3;
num3 = 0;
for (;num3<6;num3++){//第三种6位
int num4;
num4 = 0;
for (;num4<6;num4++){//第四种6位
int num5;
num5 = 0;
for (;num5<6;num5++)//第五种6位
{
int num6;
num6 = 0;
for (;num6<6;num6++)//第六种6位
{
result++;
}
}
}
}
}
}
printf("%d\n",result);
}*/






//作业5
//---------------------------------------------------------------------------
// 比较大小 :  
//---------------------------------------------------------------------------
// 用户输入10个数,比较大小,最大的打印出来
// 分析:分10次输入,每次输入和上次做比较。。,找到最大的,打印出来
//运行正确!
/*
void main(void)
{
int num1,num2,max;
num1 = 0;
num2 = 0;
max = 0;


printf("请输入一个数据:\n");
scanf("%d",&num1);
max = num1;
for (;num2<9;num2++)
{


scanf("%d",&num1);
if (num1>max) //每次输入的数都和前面一个数相比较
{
max = num1;

}
printf("max: %d",max);
}*/








//作业6
//---------------------------------------------------------------------------
//  Print:  
//---------------------------------------------------------------------------
//
// 2 3
// 4 5 6
// 7 8 9 10 
// 11 12 13 14 15
// ...
// ...
// ...
// 79 80 81 82 83 84 85 86 87 88 89 90 91
//分析:num1*(num1+1)/2每行的首位数字,
//运行正确!
/*
void main(void)
{
int num1,num2;
num1 = 1;
num2 = 0;
for (;num1<=13;num1++)//13行,
{
int temp1;
temp1 = 0;
for (;temp1<num1;temp1++)//用行数控制每行多少个数字
{
//printf(" ");
//for (;num2<=(num1*(num1+1))/2;num2++)
//{
num2++;
printf("%d",num2);
printf(" ");
//printf("\n");
//}

}
printf("\n");
}
}*/








//作业7
//---------------------------------------------------------------------------
//  Print:  
//---------------------------------------------------------------------------


// A
//   BBB
//  CCCCC
// DDDDDDD
//  EEEEE
//   FFF
// G
/*
void main(void)
{
int num1;
char c;
num1 = 1;
c = 'A';
//上半段显示
//显示数个数和行数关系--2*num1-1
for (;num1<= 4;num1++)
{
int num2,num3;
num2 = 1;
num3 = 1;
for (;num2<=4-num1;num2++)
{
printf(" ");
}

for (;num3<=2*num1-1;num3++)
{

printf("%c",c);
}
c++;
printf("\n");
}

//下半段显示
// 5 ------ 5 5+5=10+当前行数=15
//6 ---- 3 6+3=9 +当前行数=15
//7 ---- 1  7+1=8 +当前行数=15
//15是共同的基数---反推,得到:
//显示的个数与行数关系---15-2*num1
for (;num1<=7;num1++)
{
int temp1,temp2;
temp1 = 4;
temp2 = 0;
for (;temp1<num1;temp1++)
{
printf(" ");
}
for (;temp2<15-2*num1;temp2++)
{
printf("%c",c);
}
c++;
printf("\n");
}
}*/








//作业8
//---------------------------------------------------------------------------
//  Print:  
//---------------------------------------------------------------------------
/*
1 2 3 4 5 6 7 8 9 
-------------------------------
1 1 2 3 4 5 6 7 8 9 
2 2 4 6 8 10
3
4
5 ......
6
7
8 ......
9 81
*/
void main(void)
{
int num1,num2;
num1 = 1;
num2 = 1;
printf("   *\t");
for (;num1<10;num1++)//打印第一行1~9
{
printf("%d\t",num1);
}
for (;num2<=80;num2++)//打印---------------一行80个
{
printf("-");
}
for (num1=1;num1<10;num1++)//按照行,每一行数字相乘9*9
{
printf("%d\t",num1);
int temp1,result;
temp1 = 1;
result = 1;
for (;temp1<10;temp1++)
{
result = num1 * temp1;
printf("%d\t",result);
}
printf("\n");
}
}

0 0