易错点(const的用法)
#include<stdio.h>
int main(){
const int num=10;
// num=20; //err
//使用指针修改
// int *p=#
// *p=20;
//const 修饰指针变量
//const 1.放在*的左边 const int *p==int const*p
//意思是 p指向的对象(也就是这里的num)不能通过p来改变了
//但是p变量本身的值是可以改变的 如把其他的地址赋值给p
// const int *p=#
// int ww=100;
*p=20;//err
// p=&ww;//pk
//2.const放在*的右边
int* const p= #
int ww=100;
*p=20;//ok
// p=&ww;//err
printf("%d\n",num);
return 0;
}
模拟strcpy库函数
#include<stdio.h>
#include<assert.h>
//模拟库函数strcpy
char* my_strcpy(char* cc,char* ww){
//断言
assert(cc!=NULL);
assert(ww!=NULL);
char* ret=cc;
while(*cc++=*ww++){
;
}
*cc=*ww;
return ret;
}
int main(){
char cc[20]="wwwan";
char ww[]="nianjing";
printf("%s\n",my_strcpy(cc,ww));
return 0;
}
打印数组
#include<stdio.h>
void print(int arr[],int size){
int i=0;
for(i=0;i<size;i++){
printf("%d\n",arr[i]);
}
}
// void print(int* p,int size){
// int i=0;
// for(i=0;i<size;i++){
// printf("%d\n",*(p+i));
// }
// }
int main(){
int arr[]={1,2,3,4,5};
int size=sizeof(arr)/sizeof(arr[0]);
print(arr,size);
return 0;
}
字符逆序
字符逆序
#include<stdio.h>
#include<string.h>
//字符数组的逆序
int main() {
char cc[10001] = {0};
gets(cc);
int left=0;
int right = strlen(cc) - 1;
while(left<right){
char temp=cc[left];
cc[left]=cc[right];
cc[right]=temp;
left++;
right--;
}
printf("%s\n", cc);
return 0;
}
计算求和
#include<stdio.h>
int main(){
int ww=0;
int cc=0;
scanf("%d %d",&ww,&cc);
int sum=0;
int i=0;
int k=0;
for(i=0;i<cc;i++){
k=k*10+ww;
sum+=k;
}
printf("%d\n",sum);
return 0;
}
水仙花数
#include<stdio.h>
#include<math.h>
int main(){
int i=0;
for(i=0;i<=100000;i++){
int sum=0;//记录总和
int temp=i;
int n=1;//记录次方 如果只有1位数的时候 while会直接跳过 所以n从1开始
while(temp/10){
n++;
temp/=10;
}
temp=i;
while(temp){
sum+=pow(temp%10,n);
temp/=10;
}
if(sum==i){
printf("%d\n",sum);
}
}
return 0;
}
打印菱形
#include<stdio.h>
#include<math.h>
int main(){
int ww=0;//
scanf("%d",&ww);
int i=0;
for(i=0;i<ww;i++){
int j=0;
for(j=0;j<ww-1-i;j++){
printf(" ");
}
for(j=0;j<2*i+1;j++){
printf("*");
}
printf("\n");
}
for(i=0;i<ww-1;i++){
int j=0;
for(j=0;j<i+1;j++){
printf(" ");
}
for(j=0;j<2*(ww-i-1)-1;j++){
printf("*");
}
printf("\n");
}
return 0;
}
喝汽水
#include<stdio.h>
//喝汽水 1瓶1元 2个空瓶可以换1瓶
int main(){
int ww=0;
scanf("%d",&ww);
int sum=0;
int ping=0;
while(ww>0||ping>=2){
if(ww!=0){
sum+=ww;
ping+=ww;
ww=0;
}
if(ping!=0){
ww=ping/2;
ping%=2;
}
}
printf("%d\n",sum);
return 0;
}