以下代码亲自运行成功,可黏贴到vc中运行gets和puts函数
#include"stdio.h"
void main()
{
char str[20];
gets(str);//输入字符串
puts(str);//输出字符串
}
整型、字符、字符串、一维数组的初始化、输入和输出
#include"stdio.h"
#include"string.h"
void main()
{
int i = 2;
printf("%d\n请输入一个int型",i);
int ii;
scanf("%d",&ii);
printf("%d\n",ii);
//字符类型
char c = 'x';
printf("%c\n请输入一个char型",c);
char cc;
scanf("%c",&cc);
//cc = getchar();
printf("%c\n",cc);
//putchar(cc);
//字符串型
char str[] = "xuxunxun";
printf("%s\n请输入一个字符串类型",str);
char strr[100];//必须指定大小
//scanf("%s",strr);//字符数组名就代表了地址
gets(strr);//字符串输入函数
//printf("%s\n",strr);
puts(strr);
//一维数组
int a[5] = {1,2,3,4,5};
for(int j = 0;j < 5;j ++)
printf("%d\n",a[j]);
int b[3];
printf("请输入三个数字\n");
for(int k = 0;k < 3;k ++)
{
scanf("%d",&b[k]);
}
printf("输入三个数字是:\n");
for(k = 0;k < 3;k ++)
printf("%d\n",b[k]);
}
//结构体
struct student
{
char name[9];
int score[3];//存放3门课成绩
};
student stu[2];//定义两个学生的数组
for(int i = 0;i < 2;i ++)
{
printf("请输入第%d个学生的信息:\n",i + 1);
printf("姓名:");
scanf("%s",&stu[i].name);
for(int j = 0;j < 3;j ++)
{
printf("成绩%d:",j + 1);
scanf("%d",&stu[i].score[j]);
}
}
字符串输出
void main()
{
char str[]= "abcd";
int i;
char c;
for(i = 0;i < strlen(str);i++)
{
printf("%c\n",str[i]);//输出abcd }
for(i = 0;(c = str[i]) != '\0';i++)
{
printf("#\n");//输出4个#
}
}
单个输出整数的每个数字
#include"stdio.h"
void main()
{
int a = 12342139;
int i;
do
{
i = a%10 ;
printf("%d\n",i);
a = a / 10;
}while(a);
}
整型,字符串,数组的指针及输出
#include"stdio.h"
#include"string.h"
#include"stdlib.h"
int *p;
void main()
{
/* char *str = "vxzz";//最初指向V
str++;
printf("%s\n",str);//输出后面的字符串zz int a[3] = {1,2,3};
p=a;//最初指向1
p++;//移动一个,指向2
printf("%d",*p);
*/
char * month[3] = {"january","february","march"};
month[0]++;
printf("%s",month[0]);//输出Wie:anuary
}
各数值类型所占字节数
#include"stdio.h"
void main()
{
printf("int %d\n",sizeof(int));//4
printf("char %d\n",sizeof(char));//1
printf("short %d\n",sizeof(short));//2
printf("long %d\n",sizeof(long));//4
printf("float %d\n",sizeof(float));//4
printf("double %d\n",sizeof(double));//8
}
字符串和指针
#include"stdio.h"
#include"string.h"
#include"stdlib.h"
void main()
{
char *str = "vxzz";//最初指向V
str++;//后来指向x
str++;//变成指向z
printf("%c\n",*str1);//输出单个字符z
printf("%s\n",str);//输出后面的字符串zz
}
递增操作符
#include"stdio.h"
void main()
{
int a = 2;
int b = 0;
int c = 0;
b = a++;//2,先赋值后加1
c = ++a;//4,先加1后赋值
printf("b=%d,c=%d\n",b,c);
}
函数判断最大值
int max(int a,int b,int c)
{
int temp;
temp = a > b ? a : b;
temp = temp > c ? temp : c;
return temp;
}
输入字符,如果是大写变成小写
#include"stdio.h"
void main()
{
char ch;
printf("请输入一个字母\n");
scanf("%c",&ch);
ch = (ch >= 'A' && ch <= 'Z')?(ch + 32):ch;//小写比大写大32
printf("%c\n",ch);
}
输入一行字符,判断其中的英文字母,空格,数字和其他字符的个数char ch;
while((ch = getchar()) != '\n')
{
if((ch >= 'A' && ch <= 'Z')||(ch >= 'a' && ch <= 'z')
letters ++;
else if(ch == ' ')
space ++;
else if(ch >= '0' && ch <= '9')
digit ++;
else
others ++;
}
猜数字
#include"stdio.h"
#include"stdlib.h"//rand
void main()
{
int count = 0;//猜数次数
int number;//随机被猜数字
int guess;//you number
printf("\n猜数游戏");
number = rand() % 100 + 1;//
while(guess != number)
{
do
{
printf("\n请输入1到100之间的数字");
scanf("%d",&guess);
}while(!(guess >= 1&& guess <= 100));//判断输入的数字在1到100之间,否则重新输入
if(guess > number)
printf("大了!\n");
if(guess < number)
printf("小了!\n");
count ++;
}
printf("猜对了,花了%d次\n",count);
}
输入年月日,判断一年第几天
#include"stdio.h"
void main()
{
int day,month,year,sum,leap;
printf("请输入年,月,日\n");
scanf("%d,%d,%d",&year,&month,&day);
switch(month)
{
case 1:sum = 0;break;
case 2:sum = 31;break;
case 3:sum = 59;break;
case 4:sum = 90;break;
case 5:sum = 120;break;
case 6:sum = 151;break;
case 7:sum = 181;break;
case 8:sum = 212;break;
case 9:sum = 243;break;
case 10:sum = 273;break;
case 11:sum = 304;break;
case 12:sum = 334;break;
}
sum += day;
if(year % 400 == 0 ||(year % 4 == 0 && year % 100 != 0))//闰年leap = 1;
else
leap = 0;
if(leap == 1 && month > 2)//润年且大于2月
sum++;
printf("是这一年的%d天\n",sum);
}
判断素数
#include"stdio.h"
#include"math.h"
void main()
{
int m,i,k;
printf("请输入一个数字\n");
scanf("%d",&m);
k = sqrt(m);//根号m
for(i = 2;i <= k;i ++)
{
if(m % i == 0)
break;
}
if(i > k)
printf("是素数\n");
else
printf("bu是素数\n");
}
输出菱形上三角
#include"stdio.h"
#include"math.h"
void main()
{
int i,j,k;
for(i = 0;i <= 3;i ++)//共四行
{
for(j = 0;j <= 2 - i;j ++)//每行输出的空格分别为3、2、1、0 printf(" ");
for(k = 0;k <= 2 * i;k ++)//每行输出的*分别为1、3、5、7,对应的i值分别为0、1、2、3
printf("*");
printf("\n");//每输出一行就换行
}
}
冒泡排序
#include"stdio.h"
#include"math.h"
void main()
{
int a[10];
int i,j,temp;
int flag = 0;
printf("输入十个数字:\n");
for(i = 0;i < 10;i ++)
scanf("%d",&a[i]);
for(i = 0;i < 9;i ++)
{
for(j = 0;j < 9 - i;j ++)
{
flag = 0;
if(a[j] > a[j + 1])
{
temp = a[j + 1];
a[j + 1] = a[j];
a[j] = temp;
flag = 1;
}
}
if(0 == flag)
break;
}
printf("排序后为:\n");
for(i = 0;i < 10;i++)
printf("%5d\n",a[i]);
}
选择排序
#include"stdio.h"
#include"math.h"
void sort(int x[],int n)
{
int i,j,k,temp;
for(i = 0;i < n - 1;i++)
{
k = i;
for(j = i + 1;j < n;j++)
{
if(x[j] > x[k])
k = j;
}//从a【0】开始和a【1】到a【10】比,把大于a【0】的下标号标记给k
if(k != i)//如果k和相比的不等,则置换
{
temp = x[i];
x[i] = x[k];
x[k] = temp;
}
}
}
void main()
{
int a[10];
int i;
int flag = 0;
printf("输入十个数字:\n");
for(i = 0;i < 10;i ++)
scanf("%d",&a[i]);
sort(a,10);
printf("排序后为:\n");
for(i = 0;i < 10;i++)
printf("%5d\n",a[i]);
}
字符串复制
char * mystrcpy(char *dest,char *src)
{
char *d = dest;
char *s = src;
int count = 0;
if(src == dest)//两字符串一样
return src;
count = strlen(src) + 1;
if(count <= 1)//src字符串为空
return 0;
else//(dest < src || dest >= (src + count))
{
while(count --)
{
*d++ = *s++;
}
}
return dest;
}
字符串2复制到字符串1后面
void main()
{
char s1[80],s2[80];
int i = 0,j = 0;如果没有初始化赋值,i和j和值不确定gets(s1);
gets(s2);
while(s1[i] != 0)
i ++;
while(s2[j] != 0)
s1[i++] = s2[j++];
s1[i] = '\0';
puts(s1);
}
字符串反序存放
void inverse(char str[])
{
char temp;
int i,j;
for(i = 0,j = strlen(str) - 1;i < ( strlen(str) / 2); i++,j--)
{
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
puts(str);
}