C语言学习
1字符的获取与输出
#include<stdio.h>
int main()
{
char *Char =“I Love China!”;
// c语言中对于单个字符操作比较麻烦,因此需要用字符串的形式,利用gets和puts进行处理
puts(“I Love China!\n”);
puts(“I\0Love\0China\n”);// \0是结束符
puts(Char);
return 0;
}
2.字符串的读取与输出
#include<stdio.h>
int main()
{
char Cstring[30];
gets(Cstring);
puts(Cstring);
return 0;
}
3.求和公式使用(0+1+2+3…+100)采用不同的循环进行实现
(1)while语句
#include<stdio.h>
int main()
{
int origin=0;
int sum=0;
while(origin<=100)
{
sum+=origin;
origin++;
}
printf("求和结果为:%d\n",sum);
return 0;
}
(2)do …while 语句使用
#include<stdio.h>
int main()
{
int origin=0;
int sum=0;
do
{
sum+=origin;
origin++;
}while(origin<=100);//注意要加分号
printf("求和结果为:%d\n",sum);
return 0;
}
While和do …while的使用区别在于,while是先判断在执行,而do …while则是先执行再判断,即至少会执行一次。
(3)采用for 循环进行实现
#include<stdio.h>
int main()
{
int origin=0;
int sum=0;
for(origin=0;origin<=100;origin++)
{
sum+=origin;
}
printf(“求和结果为:%d\n”,sum);
return 0;
}
注意,while、do …while、以及for 循环不同在于,for循环必须知道循环的次数,而前两个可以不用知道循环次数,直接采用终止判断即可。
最后执行的结果都是:
(4)循环嵌套的使用
(1)while与while的嵌套使用
#include<stdio.h>
int main()
{
int n=0;
while(n<10)
{
int origin=0;
int sum=0;
while(origin<=100)
{
sum+=origin;
origin++;
}
n++;
printf("第%d次循环:sum=%d\n",n,sum);
}
return 0;
}
(2)for…for…for多级嵌套使用
#include<stdio.h>
int main()
{
int i,j,k;
for(i=1;i<=20;i++)// 循环X次,即总共分为X层进行输出
{
for(j=1;j<=20-i;j++) // 控制空格输出
printf(" “);
for(k=1;k<=2i-1;k++)// 控制号输出的个数
printf(”"); // 注意内层循环中的两个for语句是一个一个进行执行的
printf("\n"); // 例如第一行,先空格4个,然后输出一个号,再空格4个,后面以此类推
}
return 0;
}
(3)利用for嵌套输出9*9乘法表
#include<stdio.h>
int main()
{
int i,j,k;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
printf("%d*%d=%d\t",i,j,i*j);
printf("\n");
}
return 0;
}
5.break语句的使用
#include<stdio.h>
int main()
{
int i,j,k;
for(i=1;i<=10;i++)
{
if(i==5)
break;//break可以用于跳出循环体
}
printf(“end\n”);
return 0;
}
6.数组的循环赋值,以及数组的循环赋值并输出。
#include<stdio.h>
int main()
{
int Array[5],index,temp;
printf(“Please enter a Array:\n”);
for(int i=0;i<=4;i++)
scanf("%d",&Array[i]);
printf("The Array is:\n");
for(i=0;i<=4;i++)
{
printf("%d ",Array[i]);
}
printf("\n");
printf("The revert is:\n");
for(i=4;i>=0;i--)
printf("%d ",Array[i]);
printf("\n");
return 0;
}
尽管我输入6个数,但是只能读取到其中的前五个
7.一维数组的赋值使用,这里用到了指针定义法,对初始化中的名字进行输出。
#include<stdio.h>
int main()
{
int Array[5],index,temp;
char* ArrayName[4];
ArrayName[0]=“Zhai Haixiang”;
ArrayName[1]=“Li Yong”;
ArrayName[2]=“Wang Chao”;
for(index=0;index<4;index++)
{
printf("%s\n",ArrayName[index]); // 字符串输出形式,注意本例程在vc++6.0中运行出现bug,自行验证
}
return 0;
}
7.1 这是因为指针在使用的时候没有初始化地址,因此会进行报错提示,这里将其修改一下,在声明的时候就进行初始化,这样运行就OK了,当然可以进行取地址符进行操作也是没问题的,后面介绍指针的时候自行体会,这里简单说一下。
#include<stdio.h>
int main()
{
int Array[5],index,temp;
char* ArrayName[4]={“Zhai Haixiang”,“Li Yong”,“Wang Chao”};
for(index=0;index<4;index++)
{
printf("%s\n",ArrayName[index]); // 字符串输出形式,注意本例程在vc++6.0中运行出现bug,自行验证
}
return 0;
}
8.用二维数组进行赋值,并且通过比较对二维数组中的数据进行比较,输出最大值和最小值。
#include<stdio.h>
int main()
{
int a[2][3],b[3][2];
int max,min;
int h,i,j,l;
for(i=0;i<2;i++) // 通过键盘键入二维数组
{
for(j=0;j<3;j++)
{
printf(“a[%d][%d]=”,i,j);
scanf("%d",&a[i][j]);
}
}
for(i=0;i<2;i++) // 二维数组的输出,将上面的二维数组进行输出显示
{
for(j=0;j<3;j++)
printf("%d\t",a[i][j]); // 制表符输出
printf("\n"); // 每隔一层换行一次进行输出
}
// 求二维数组中的最大值及其下标
max=a[0][0];
min=a[0][0];
h=0;
l=0;
{
for(i=0;i<2;i++)
for(j=0;j<3;j++)
{
if(max<a[i][j])
{
max=a[i][j];
h=i;
l=j;
}
}
printf("数组中的最大元素是:\n");
printf("max:a[%d][%d]=%d\n",h,l,max);
}
// 求二维数组中的最小值及其下标
{
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
if(min>a[i][j])
{
min=a[i][j];
h=i;
l=j;
}
}
printf("数组中的最小元素是:\n");
printf("min:a[%d][%d]=%d\n",h,l,min);
}
}
return 0;
}