以下为个人边练习边敲记录(解法不一定和官方一样,会自己扩展一些,练习嘛,肯定是学到的都用上,算检验之前的学进去的是不是对的。)
#include
int main(){
printf("hello world");
}
#include
int main(){
int a=1;
printf("%d",a);
}
#include
#include
int main(){
SetConsoleOutputCP(65001);
char a='z';
printf("%c",a);
}
#include
int main(){
float a=1.01;
printf("%f",a);
}
#include
int main(){
double d=20.56;
printf("%g",d);
}
#include
int main(){
int a=1;
int b=2;
int c=a+b;
printf("%d",c);
}
#include
int main(){
float a=2.5;
float b=1.4;
float c=a*b;
// printf("%g",c);
printf("%.2lf",c);//保留小数点后2位
}
#include
#include
int main(){
SetConsoleOutputCP(65001);
char a;
printf("请输入当个字符:");
scanf("%c",&a);// char a[]字符串才不用&,字符需要& ,字符串默认就指向内存地址
printf("'%c'的ASCII码是: %d",a,a);
}
#include
#include
int main(){
SetConsoleOutputCP(65001);
int a,b,c,d;
printf("请输入a,b用空格隔开");
scanf("%d %d",&a,&b);
c=a/b;
d=a%b;
printf("%d/%d=%d 余%d",a,b,c,d);
}
#include
#include
int main(){
SetConsoleOutputCP(65001);
int a=1,b=999;
char c;
c=a>b?'a':'b';
printf("%c大",c); //不是用%s 单字符输出用%c
}
#include
#include
int main(){
SetConsoleOutputCP(65001);
int a;
char b;
float c;
double d;
printf("int占:%d\nchar占:%d\nfloat占:%d\ndouble占:%d",sizeof(a),sizeof(b),sizeof(c),sizeof(d));
return 0;
}
#include
#include
int main(){
SetConsoleOutputCP(65001);
double a,b,c;
printf("请输入2个双精度用空格隔开: ");
scanf("%lf %lf",&a,&b);
printf("交换前,a=%lf,b=%lf\n",a,b);
c=a;
a=b;
b=c;
printf("交换后,a=%.2lf,b=%.2lf",a,b);
}
#include
#include
int main(){
SetConsoleOutputCP(65001);
int a;
printf("请输入一个int型数字: ");
scanf("%d",&a);
char *str;
str=a%2==0?"偶数":"奇数";
printf("你输入的是: %s",str);
}
#include
#include
int main(){
SetConsoleOutputCP(65001);
int arr[]={10,13,26,55,22,66,44,73};
int len=sizeof(arr)/sizeof(*arr);
int arr2[10];
int arr2Index=0;
int arr3[10];
int arr3Index=0;
int i=0;
while (i
#include
#include
#include //大小写处理 系统便准库
int main(){
SetConsoleOutputCP(65001);
char a;//单个字符定义不用c[]
printf("请输入单个英文字母:");
scanf("%c",&a);//%c单个字符
if(isupper(a)==1){//判断输入字母是否大写 大写放回1 小写返回0
a=tolower(a); //大写转小写 A->a B->b
}
if(a=='a'||a=='e'||a=='i'||a=='o'||a=='u'){//元音a、e、i、o、u 这五个字母
printf("你输入的是元音");
}else{
printf("你输入的是辅音");
}
}
#include
#define ArrLen 3
int main(){
SetConsoleOutputCP(65001);
int a[ArrLen];
printf("请输入3个数字空格隔开:");
scanf("%d %d %d",&a[0],&a[1],&a[2]);
int maxVal=a[0];
for(int i=1;i
输出年/月/日 时:分:秒可以看博主另一篇博文----》c语言输出年/月/日 时:分:秒
闰年的定义:
#include
#include
#include
#define CCT (+8)
int main ()
{
SetConsoleOutputCP(65001);
time_t rawtime;
struct tm *info;
// struct tm {
// int tm_sec; /* 秒,范围从 0 到 59 */
// int tm_min; /* 分,范围从 0 到 59 */
// int tm_hour; /* 小时,范围从 0 到 23 */
// int tm_mday; /* 一月中的第几天,范围从 1 到 31 */
// int tm_mon; /* 月份,范围从 0 到 11 */
// int tm_year; /* 自 1900 起的年数 */
// int tm_wday; /* 一周中的第几天,范围从 0 到 6 */
// int tm_yday; /* 一年中的第几天,范围从 0 到 365 */
// int tm_isdst; /* 夏令时 */
// };
time(&rawtime);
info = gmtime(&rawtime);
//年
int year=info->tm_year+1900;
int bfh=year%4;
int bfh1=year%100;
int bfh2=year%400;
char msg[20]={"\0"};
if((bfh==0 &&bfh1!=0)||bfh2==0){
strcpy(msg,"闰年");
}else{
strcpy(msg,"不是闰年");
}
printf("当前是%u:%s",year,msg);
return(0);
}
#include
#include
int main ()
{
SetConsoleOutputCP(65001);
double val;
printf("%请输入数字:");
scanf("%lf",&val);
char str[100]={"\0"};
if(val==0){
strcpy(str,"即不是正数也不是负数");
}else if(val>0){
strcpy(str,"正数");
}else{
strcpy(str,"负数");
}
printf("你输入的是 %g,他是%s",val,str);
}
for循环
#include
#include
int main ()
{
SetConsoleOutputCP(65001);
int n,sum=0;
printf("请输入自然数n:");
scanf("%d",&n);
for(int i=0;i<=n;i++){
sum+=i;
}
printf("%d",sum);
}
while do
#include
#include
int main ()
{
SetConsoleOutputCP(65001);
int n,sum=0;
printf("请输入自然数n:");
scanf("%d",&n);
int i=0;
while(i<=n &&n>0){
sum+=i;
i++;
}
printf("%d",sum);
}
递归
#include
#include
int addNum(int val){
if(val!=0){
return val+addNum(val-1);
}else{
return val;
}
}
int main ()
{
SetConsoleOutputCP(65001);
int n,sum=0;
printf("请输入自然数n:");
scanf("%d",&n);
printf("%d",addNum(n));
}
#include
#include
#include
int main ()
{
SetConsoleOutputCP(65001);
char n;
printf("判断是不是字母:");
scanf("%c",&n);
if(isalpha(n)){// isalpha 该函数检查所传的字符是否是字母。 isupper判断大写返回1 ,islower(int c) 判断是不是小写
printf("你输入的%c是字母",n);
}else{
printf("你输入的%c不是字母",n);
}
}
#include
#include
int main ()
{
SetConsoleOutputCP(65001);
for(int i=1;i<10;i++){
for(int j=1;j<=i;j++){
printf("%dx%d=%d ",j,i,i*j);
}
printf("\n");
}
}
#include
#include
int main ()
{
SetConsoleOutputCP(65001);
int a,b,val;
printf("请输入2个正整数:");
scanf("%d %d",&a,&b);
for(int i=1;i<=a&&i<=b;i++){
if(a%i==0 && b%i==0){
val=i;
}
}
printf("%d和%d的最大公约数是:%d",a,b,val);
}
#include
#include
int main ()
{
SetConsoleOutputCP(65001);
for(int i='A';i<='Z';i++){
printf("%c ",i);
}
}
#include
#include
int main ()
{
SetConsoleOutputCP(65001);
long long n;
printf("请输入n:");
scanf("%lld",&n);
int size=0;
while(n!=0){
n=n/10;
size++;
}
printf("%lld是 %d 位数",n,size);
//gcc, 两个long合用,即long long类型,表示C语言目前最长的系统整型类型,每个long long类型占8字节,64位。其格式化字符为"%lld"。
}
#include
#include
int main ()
{
SetConsoleOutputCP(65001);
int a,b,n=1;
long long z=1;
printf("请输入基数和指数并空格隔开:");
scanf("%d %d",&a,&b);
while(n<=b){
z*=a;
n++;
}
printf("%lld",z);
}
也可以用math.h的pow方法
#include
#include
#include
int main ()
{
SetConsoleOutputCP(65001);
int a,b,n=1;
long long z=1;
printf("请输入基数和指数并空格隔开:");
scanf("%d %d",&a,&b);
z=pow(a,b);
printf("%lld",z);
}
#include
#include
#include
int main ()
{
SetConsoleOutputCP(65001);
long long a;
printf("请输入二进制:");
scanf("%lld",&a);
int remainder=0;
int endVal=0;
int i=0;
while(a!=0){
remainder=a%10; //1011 经过a%10求膜后得到1 因
a/=10; //a变成101
endVal+=remainder*pow(2,i); //1*2^0=1; 任何数的0次方是1
i++;
}
printf("%d",endVal);
}
其实就是改一个这个位置就可以改变输入的进制
endVal+=remainder*pow(8,i); //这是八进制
endVal+=remainder*pow(16,i); //这是十六进制
#include
#include
int main ()
{
SetConsoleOutputCP(65001);
long long a;
printf("请输入十进制:");
scanf("%lld",&a);
int remainder=0;
int endVal=0;
int i=1;
while(a!=0){
remainder=a%2;
a/=2; //
endVal+=remainder*i; //1*2^0=1; 任何数的0次方是1
i*=10;
}
printf("%d",endVal);
//假设输入11
// 11%2 1, 11/2= 5(因为int类型只保留整数)
//5%2 1, 5/2=2,
//2%2 0, 2/2=1;
//1%2 1, 1/2=0.5(int型只保留小数点前面那位整数) =0
//while(a!=0) 所以停止循环 得到 1101
}
其他进制就该变下面这两个就可以了
//八进制
remainder=a%8;
a/=8; //
//十六进制
remainder=a%16;
a/=16; //
八进制转二进制 就先把
八进制转十进制、然后十进制转二进制就可以了。
#include
#include
void reverseSentence(){
char c;
scanf("%c",&c);
if(c!='\n'){
reverseSentence();
printf("%c",c);
}
}
int main ()
{
SetConsoleOutputCP(65001);
char c;
printf("请输入与字符串:");
reverseSentence();
}
#include
#include
int main (){
SetConsoleOutputCP(65001);
char a[]={'h','e','l','l','o'};
char aSize=sizeof(a)/sizeof(*a);
char p[5];
int b=0;
//逻辑
for(int i=aSize-1;i>=0;i--){
p[b]=a[i];
b++;
}
//输出
for(int i=0;i
切记如果是自定义的字符串char a[]={'h','e','l','l','o','\0'}; 尾巴一定要有‘\0’!!!!!!!!!!!!!!!!!
#include
#include
int main (){
SetConsoleOutputCP(65001);
char a[1000];
printf("请输入字符串:");
scanf("%s",a);
int aSize=strlen(a);
printf("%s的字符串长度为:%d",a,aSize);
}
#include
#include
int main (){
SetConsoleOutputCP(65001);
char arr[3][2];
for(int i=0;i<3;i++){
for(int j=0;j<2;j++){
arr[i][j]=j;
}
}
printf("sss");
}