scanf与printf函数的运用,学会了输入输出时类型前面的数字含义
printf,整数型"%5d"输出宽度为5,
浮点型"%8.4f"右对齐的输出宽度为8,小数位为4
#include<stdio.h>
int main()
{
int a,b,c;
scanf("%2d%3d%d",&a,&b,&c);
printf("%d,%d,%d\n",a,b,c);
}
结果:
数组的存储与输出
简单一维数组,用一个for循环来录入一组数据
#include<stdio.h>
#define MAXN 10
int main(void)
{
int a[MAXN],i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
printf("%-3d",a[i]);
}
结果:
二维数组的运用:
也可以用来输出矩阵呀
录入四位同学的成绩,且求出他们的平均分。
#include<stdio.h>
int main()
{
int i,j,avarge;
int a[4][3];
for(i=0;i<4;i++) //for的嵌套循环
{
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
}
printf("成绩单为:\n");
for(i=0;i<4;i++)
{
for(j=0;j<3;j++)
printf("%-5d",a[i][j]);
printf("\n");
}
printf("各位同学的平均值为:\n");
for(i=0;i<4;i++)
{
int s=0;
for(j=0;j<3;j++)
s=s+a[i][j];
avarge=s/3;
printf("%d\n",avarge);
}
}
字符数组的学习
相关函数的了解,在头文件<string.h>中
连接函数为strcat(s1,s2),strncat(s1,s2,n)
拷贝函数strcpy(dest,s1),strncpy(dest,s1,n)
比较函数strcmp(s1,s2)
#include<stdio.h>
#include<string.h>
void main()
{
int op,i;
for(i=0;i<100;i++)
{
char s1[80]="123456789";
char s2[80]="abcdefg";
printf("请输入要进行的操作序号:\n");
scanf("%d",&op);
switch(op)
{
case 1: {strcat(s1,s2);
puts(s1);printf("\n");
puts(s2);break;}
case 2:
{strncat(s1,"abcdef",5);
puts(s1);break;} //连接函数
case 3: {char dest[20];
strcpy(dest,s1);
puts(dest);}break;
case 4: {char d[20];
strncpy(d,s1,5);
puts(d);}break; //复制函数
case 5: {
if(strcmp(s1,s2)>0)
printf("1\n");
else if (strcmp(s1,s2)<0)
printf("-1\n");
else printf("0\n");}break; //比较字符串的大小
}
}
}
结果:strncpy函数的操作中出现了错误,目前不知道什么原因。