C语言编程浅析(一)

hello world

#include<stdio.h>
int main()
{
	printf("hello world\n");
	return 0;
}

sizeof用法例举

#include<stdio.h>
int main(){
	int a[10],i;
	for(i=0;i<10;i++)
	scanf("%d",&a[i]);
	for(i=0;i<10;i++)
	printf("%d,%d,%d\n",i,a[i],sizeof(a[i]));
	printf("%d##%d\n",sizeof(a),sizeof(a)/sizeof(a[0]));
	int a1[]={1,2,3,4,5,6,7,8,};
	printf("%d\n",sizeof(a1)/sizeof(int));
	return 0;
} 
/*
#include<stdio.h>
int main(){
	char fruit[][10]={"banana","apple","strawmerry","watermelen"};
	int i,j,n,m;
	n=sizeof(fruit)/sizeof(fruit[0]);
	m=sizeof(fruit[0])/sizeof(char);
	printf("%d %d\n",n,m);
	for (i = 0;i < n; i++){
		for(j=0 ;j<m;j++){
			printf("%c",fruit[i][j]);
		}
		printf("\n");
	}
	return 0;
} 
*/ 

strcat函数编写

#include<stdio.h>
int main(void){
	char s1[20],s2[10];
	int i=0,j;
	printf("输入字符s1:");
	gets(s1);
	printf("输入字符s2:");
	gets(s2);
	while(s1[i]!='\0'){
		i++;
	}
		for(j=0;j<10;j++){
		s1[i]=s2[j];
		i++;
		}
		printf("输出字符s1:");
	puts(s1);
	printf("输出字符s2:");
	puts(s2);
	return 0;
}

解决程序运行完成后不暂停的三种函数方法

#include<stdio.h>
#include<windows.h> 			//Sleep函数 
#include<stdlib.h>				//system函数 
#include<conio.h>				//getch函数 
int main(int argc,char const *argv[]){
	int i;
	for(i=0;i<argc;i++){
		printf("%d:%s\n",i,argv[i]);
	}
//	getch();
//	system("pause");
	Sleep(1000);
	return 0;
} 

大小写转换(运用条件运算符)

#include<stdio.h>
int main()
{
    char a;
	printf("输入需要转换的字母:\n");
	a=getchar();
	a=(a<=91)?(a+=32):(a-=32);
    printf("转化结果:%c\n",a);
	return 0;
}

单词个数判断

#include<stdio.h>
#define N 100
int main(void){
	int i,word =0;
	char str[N];
	gets(str);
	if(str[0]!='\0'){
		if(str[0]!=' ') 
		word++;
		i=1;
		while(str[i]!='\0'){
			if(str[i]!=' '&& str[i-1]==' ')
				word++;
			i++;
		}
	}
	printf("words number:%d\n",word);
	return 0;
}

倒序输出(数字)

sub(int *s, int *y);
main()
{
	int a[]={1,2,3,4},i,x=0;
	for(i=0;i<4;i++)
	{
		sub(a,&x);//从a[3]开始向下输出
		printf("%d",x);
	}
	printf("\n");
}
sub(int *s,int *y)
	{
		static int t=3;//静态局部变量
		*y=s[t];
		t--;
	}

倒序输出(字符串)

#include <stdio.h>
#include <string.h>
void fun(char *s,char *t)//倒序输出
{
	char k;
	k=*s;
	*s=*t;
	*t=k;
	s++;
	t--;
	if(*s)
	fun(s, t);
}
void main()
{
	char str[10]="abcdefg",*p;
	p=str+strlen(str)/2+1;//指针p指向字符串str的中间的一个有效字符。 
	fun(p,p-2);
	printf("%s\n",str);
}
/*
#include <stdio.h>
#include <string.h>
void fun(char *s,int p1 ,int p2)//从p1到p2开始交换
{
	char t;
	while(p1<p2)
	{
		t=*(s+p1);
		*(s+p1)=*(s+p2);
		*(s+p2)=t;
		p1++;p2--;
	}
}
void main()
{
	char str[10];
	int i;
	for(i=0;i<9;i++)
		str[i]='A'+i;
	str[i]='\0';
	puts(str);
	fun (str,0,strlen(str)-1);//字符数组的第一个地址到最后一个地址
	puts(str);
}
*/

二分法查找

#include<stdio.h>
#define N 10
int main(void){
	int key,mid,low=0,high=N-1,a[N]={1,6,1,8,7,1,9,5,3,1};
	printf("input a number to search ");
	scanf("%d",&key);
	while(low<=high){
		mid=(low+high)/2;
		if(a[mid]>key) high=mid-1;
		else if(a[mid]<key) low=mid-1;
		else break;
	}
	if(low>high) printf("not found %d\n",key);
	else printf("found a[%d]=%d\n",mid+1,key);
    return 0;
}

二进制转换

#include<stdio.h>
int main(int argc,char const *argV[]){
	int number;
//	scanf("%d",&number);
	number = 0xaaaaaaaa;
	unsigned mask = 1u<<31;
	for(;mask;mask>>=1){
		printf("%d",number & mask?1:0);
	}
	printf("\n");
	return 0;
} 

汉诺塔

#include<stdio.h>
//#include<conio.h>
//#include <windows.h>
void Hanoi(int n, char a,char b,char c);
void Move(int n, char a, char b);
int count;
int main()
{
    int n=8;
    printf("汉诺塔的层数:\n");
    scanf(" %d",&n);
    Hanoi(n, 'A', 'B', 'C');
//    Sleep(20000);
//	getche();
	system("pause");
    return 0;
}
void Hanoi(int n, char a, char b, char c)
{
    if (n == 1)
    {
        Move(n, a, c);
    }
    else
    {
        Hanoi(n - 1, a, c, b);
        Move(n, a, c);
        Hanoi(n - 1, b, a, c);
    }
}
void Move(int n, char a, char b)
{
    count++;
    printf("第%-3d次移动\tMove %d: Move from %c to %c !\n",count,n,a,b);
}

/*
#include<stdio.h>
void Hanoi(int,char,char,char);
int main(){
	int num;
	puts("请输入盘子个数:");
	scanf("%d",&num);
	puts("---------------------------");
	Hanoi(num,'A','B','C');
	puts("---------------------------");
	return 0;
}
void Hanoi(int num,char a,char b,char c){
	if(num==1)
		printf("%c-->%c\n",a,c);
	else{
		Hanoi(num-1,a,c,b);//n-1个盘子由A经过C移动到B
		printf("%c-->%c\n",a,c);//hanoi(1,a,b,c);
		Hanoi(num-1,b,a,c);//n-1个盘子由B经过A移动到C
	}
}
*/

华氏温度和摄氏温度对照表

#include<stdio.h>
#include<cstdlib>
/*对fahr = 0,20,。。。,300
打印华氏温度与摄氏温度对照表*/
int main(){
	int fahr,celsius;
	int lower,upper,step;
	
	lower = 0; 		//温度表的下限
	upper = 300;	//温度表的上限
	step = 20; 		//步长
	fahr = lower;
	
	while (fahr <= upper){
		celsius = 5 * (fahr-32) / 9;
		printf("%d\t%d\n",fahr,celsius);
		fahr +=step;
	}
	system("pause"); 
	return 0;
} 

回文判断

#include<stdio.h>
#define N 20
int main(void){
	char a[N];
	int i=0,j;
	puts("输入需要判断的字符:");
	gets(a);
	while(a[i]!='\0')
	i++;
	i--;
	for(j=0;j<=i;i--,j++){
		if(a[i]!=a[j])
			break;
	}
	if(j<=i)
		printf("%s 不是回文\n",a);
	else
		printf("%s 是回文\n",a);
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值