首页 > 其他分享 >C语言习题

C语言习题

时间:2023-06-29 18:03:39浏览次数:35  
标签:int scanf float C语言 char printf 习题 输入

C语言习题

///////////////////////////////////////////////////////////////////////////////////
将学生信息打印到文本文件

#include<stdio.h>

struct student
{
    int num;
    char name[20];
    float score;
    char grade;
};
struct student stu[5];

void write();

int main()
{
    for(int i=0;i<5;i++)
    {
        printf("第%d同学\n学号:",i+1);
        scanf("%d",&stu[i].num);
        printf("姓名:");
        scanf("%s",stu[i].name);
        printf("成绩:");
        scanf("%f",&stu[i].score);
        switch((int)stu[i].score/10)
        {
            case 10:
            case 9:stu[i].grade='A';break;
            case 8:stu[i].grade='B';break;
            case 7:stu[i].grade='C';break;
            case 6:stu[i].grade='D';break;
            default:stu[i].grade='E';
        }
    }

    write();

    return 0;
}

void write()
{
    FILE *fp=fopen("hello.txt","w+");
    if(fp==NULL)
    {
        perror("fp");
    }
    fprintf(fp,"学号\t姓名\t评级\t成绩\n");
    for(int i=0;i<5;i++)
    {
        fprintf(fp,"%d\t\t%s\t\t%c\t\t%f\n",stu[i].num,stu[i].name,stu[i].grade,stu[i].score);
    }
}

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
功能函数,字符串查找,在一个字符串中查找一个字符,并返回这个字符的地址

#include <stdio.h>

char *chh(char ch[],char n);
int main()
{
    char ch[31]={0};
    printf("请输入一串字符:");
    scanf("%s",ch);
    char n;
    getchar();
    printf("请输入要查找的字符:");
    scanf("%c",&n);
    char *p=chh(ch,n);
     printf("%c的地址为:%p\n",n,p);
    return 0;
}

char *chh(char ch[],char n)
{
    for(int i=0;i<30;i++)
    {
        if(ch[i]=='\0')
        {
            printf("没有要找的字符!\n");
            return 0;
        }
        else if(ch[i]==n)
        {
           
            return &ch[i];
        }
    }

}

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
水果总价

struct sum
{
    float apple;
    float putao;
    float banna;
}price={5,6.8,5.2};


int main()
{
    float a,b,c;
    printf("请输入买入的苹果斤数:");
    scanf("%f",&a);
    printf("请输入买入的葡萄斤数:");
    scanf("%f",&b);
    printf("请输入买入的香蕉斤数:");
    scanf("%f",&c);
    a=price.apple*a;
    b=price.putao*b;
    c=price.banna*c;
    printf("总价为:%.2f\n",a+b+c);
} 

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
函数 实现字符串连接

int main()
{
    char a[1024]={0};
    char b[1024]={0};
    printf("请输入第一个字符串:");
    gets(a);
    printf("请输入第二个字符串:");
    gets(b);

    char *m=a;
    char *n=b;   
    lianjie(m,n);
    for(int i=0;i<1024;i++)
    {
        if(m[i]=='\0')
        {
            break;
        }

        else
        {
            printf("%c",m[i]);
        }
    }
    printf("\n");
}

void lianjie(char *m,char *n)
{
    for(int i=0;i<1024;i++)
    {
        if(m[i]=='\0')
        {
            for(int j=0;j<1024;j++)
            {
                m[i+j]=n[j];
                if(n[j]=='\0')
                {
                    return m;
                }

            }
        }
    }
}

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 函数 用指针求字符串长度

int main()
{
    char str[1024]={0};
    gets(str);
    char *p=str;
    len(p);
}

int len(char *p)
{
    for(int i=0;i<1024;i++)
    {
        if(p[i]=='\0')
        {
            printf("长度为:%d\n",i);
            return 0;
        }
    }
}

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* summarys函数求数组和

int summarrays(int a[],int b[],int c);

int main()
{
    int a[1024]={0};
    int b[1024]={0};

    int c=0;
    int d=0;
    int e;

    for(int i=0;i<1024;i++)
    {
        printf("请输入第一个数组第%d个值:",i+1);
        scanf("%d",&a[i]);
        if(a[i]==0)
        {   
            c=i;
            break;
        }
    }
    for(int i=0;i<1024;i++)
    {
        printf("请输入第二个数组第%d个值:",i+1);
        scanf("%d",&b[i]);
        if(b[i]==0)
        {
            d=i;
            break;
        }
    }

    e=c>d?c:d;

    int *m=summarrays(a,b,e);

    for(int i=0;i<e;i++)
    {
        printf("数组第%d项和为:",i+1);
        printf("%d\n",m[i]);
    }

}

int summarrays(int a[],int b[],int c)
{
    for(int i=0;i<c;i++)
    {
        a[i]=a[i]+b[i];
    }
    return a;
}

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 函数求最大公约数与最小公倍数

void yueshu(int a,int b);

int main()
{
    int a,b;
    printf("请输入两个整数:");
    scanf("%d %d",&a,&b);
    yueshu(a,b);
    
}
void yueshu(int a,int b)
{
    for(int i=a-1;i>1;i--)
    {
        if(a%i==0)
        {
            if(b%i==0)
            {
                printf("最大公约数为:%d\n",i);
                printf("最小公倍数为:%d\n",a*b/i);
            }
        }
    }
}

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 函数输入不多于5位的正整数

void weishu(int a);

int main()
{
    int a;
    printf("请输入一个不多于5位的正整数:");
    scanf("%d",&a);
    weishu(a);
    return 0;


}
void weishu(int a)
{
    if(a/1000>0)
    {
        printf("它是4位数\n");
        printf("千位数字为:%d\n",a/1000);
        printf("百位数字为:%d\n",a%1000/100);
        printf("十位数字为:%d\n",a%1000%100/10);
        printf("个位数字为:%d\n",a%1000%100%10);
       
    }
    else if(a/100>0)
    {
        printf("它是3位数\n");
        printf("百位数字为:%d\n",a%1000/100);
        printf("十位数字为:%d\n",a%1000%100/10);
        printf("个位数字为:%d\n",a%1000%100%10);
     
    }
    else if(a/10>0)
    {
        printf("它是2位数\n");
        printf("十位数字为:%d\n",a%1000%100/10);
        printf("个位数字为:%d\n",a%1000%100%10);
       
    }
    else if(a/1>0)
    {
        printf("它是1位数\n");
        printf("个位数字为:%d\n",a%1000%100%10);
   
    }
    else
    {
    printf("错误\n");
    }

}

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 函数逆序输出

char nixu(char str[],int a);

int main()
{
    char str[1024];
    printf("请输入字符串:");
    gets(str);
    int a=strlen(str);
    nixu(str,a);
    for(int i=0;i<5;i++)
    {
        printf("%c",str[i]);
    }


}

char nixu(char str[],int a)
{
    char temp;
    for(int i=0;i<=a/2;i++)
    {
        temp=str[i];
        str[i]=str[a-1-i];
        str[a-1-i]=temp;
    }
    return str;
}

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 函数小球下落经历多少米

float way(float high,int n);

int main()
{
    float high=100;
    int n;
    printf("请输入落地次数:");
    scanf("%d",&n);
    float w=way(high,n);
    printf("第%d次落地时,共经过了%.2f米。\n",n,w);
}


float way(float high,int n)
{
    float sum=0;
    float way=0;
    for(int i=0;i<n;i++)
    {
        sum+=high+way;
        high=high/2;
        way=high;
    }
    return sum;
} 

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////

/* 函数求本金之和

float sum(float a,int b,float c);

int main()
{
    float r=0.0225;
    float x;
    int n;

    printf("其输入存款金额:");
    scanf("%f",&x);
    printf("请输入存款年限:");
    scanf("%d",&n);
    printf("本金之和为:%f\n",sum(x,n,r));

}

float sum(float a,int b,float c)
{
    for(int i=1;i<=b;i++)
    {
        a=a*(1+c);
    }
    return a;
}

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 函数截取字符串

void cut(char str[],int m,int n)
{

    for(int i=m-1;i<=n-1;i++)
    {
        printf("%c",str[i]);
    }
    printf("\n");
}

int main()
{
    char str[1024];
    int m,n;
    printf("请输入字符串:");
    gets(str);
    printf("请输入起始和结束位:");
    scanf("%d %d",&m,&n);
    cut(str,m,n);
}

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 函数求1/n的和

float sum(int n)
{
    float sum=0;
    for(float i=1;i<=n;i++)
    {
        sum+=1/i;
    }
    
    return sum;

}

int main()
{
    int n;
    printf("请输入要计算的项数:");
    scanf("%d",&n);
    float m;
    m=sum(n);
    printf("和为:%f\n",m);

}

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 更改指定字符

void change(char a[],char b)
{
    for(int i=0;i<1024;i++)
    {
        if(a[i]=='a')
        {
            a[i]=b;
            printf("%c",a[i]);
        }
        else if(a[i]=='\0')
        {
            break;
        }
        else
        {
            printf("%c",a[i]);
        }
    }
    printf("\n");

}

int main()
{
    char a[1024];
    char b;
    printf("请输入字符串:");
    gets(a);
    printf("将a更改为:");
    scanf("%c",&b);


    change(a,b);
}

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 函数判断闰年

void run(int a)
{
    if(a%4==0&&a%100!=0)
    {
        printf("是闰年\n");
    }
    else if(a%400==0)
    {
        printf("是闰年\n");
    }
    else
    {
        printf("不是闰年");
    }
}
int main()
{
    int a;
    scanf("%d",&a);
    run(a);
} 

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 函数计算平均值

void avg(float a,int b)
{
    printf("%f\n",a/b);
}

int main()
{
    float a[5];
    float sum=0;
    int b;
    for(int i=0;i<5;i++)
    {
        printf("请输入第一个数:");
        scanf("%f",&a[i]);
        sum+=a[i];
    }
    b=sizeof(a)/sizeof(float);
    avg(sum,b);

}

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 函数求和

void sum(int a,int b)
{
    int sum=0;
    for(a;a<=b;a++)
    {
        sum+=a;
    }
    printf("%d\n",sum);
}

int main()
{
    int m,n;
    printf("请输入最小数:");
    scanf("%d",&m);
    printf("请输入最大数:");
    scanf("%d",&n);
    sum(m,n);


}

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 符号函数

void sign(int x)
{
    if(x>0)
    {
        printf("1\n");
    }
    else if(x<0)
    {
        printf("-1\n");
    }
    else 
    {
        printf("0");
    }
}
int main()
{
    int a;
    scanf("%d",&a);
    sign(a);
} 

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
函数比大小

void Max(int a,int b);

int main()
{

    int a,b;
    scanf("%d %d",&a,&b);
    Max(a,b);

}

void Max(int a,int b)
{
    printf("%d\n",a>b?a:b);

} 

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
函数计算数字空格大小写数量


    char a[3][80];
    char (*p)[80]=a;
    for(int i=0;i<3;i++)
    {
        gets(p+i);
    }
    int i,j;

    int x,y,z,v;
    x=y=z=v=0;
    for(int i=0;i<3;i++)
    {
        for(int j=0;j<80;j++)
        {
        if(*(*(p+i)+j)=='\0')
        {
            break;
        }
        else if(*(*(p+i)+j)>='A'&&*(*(p+i)+j)<='Z')
        {
            x++;
        }
        else if(*(*(p+i)+j)>='a'&&*(*(p+i)+j)<='z')
        {
            y++;
        }
        else if(*(*(p+i)+j)>='0'&&*(*(p+i)+j)<='9')
        {
            z++;
        }
        else
        {
            v++;
        }
        }

        
    }
    printf("大写:%d\n",x);
    printf("小写:%d\n",y);   
    printf("数字:%d\n",z);
    printf("其他:%d\n",v);   

    return 0; 

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 指针输出元素

    int a[10];
    int *p=a;
    for(int i=0;i<10;i++)
    {
        scanf("%d",p+i);
    }

    for(int i=0;i<10;i++)
    {
        printf("%d\t",*(p+i));
    }

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////

/* 统计单词数量

	char m[1024];
	char n[1024];
	int a=0,b,c;

	printf("请输入一行字符串:");
	gets(m);
	for(int i=0;i<1024;i++)
	{
		if(m[i]==' ')
		{
			a++;
		}
		else if(m[i]=='\0')
		{
			a++;
			break;
		}
	}
	printf("单词数量为:%d\n",a);
	

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////

/* 二维数组打印星号

    int n;
    int a,b,c=0;

    printf("请输入要打印的行数:");
    scanf("%d",&n);
    b=n-1;
    for(int i=0;i<n;i++)
    {
		//打印空格
        for(int a=0;a<b;a++)
        {
            printf(" ");
        }
		//打印“*”
        for(int j=0;j<2*i+1;j++)
        {
            printf("*");
            c++;
            if(c==2*i+1)
            {
                break;
            }
        }
        b=b-1;
        c=0;
        printf("\n");
    }

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////

/* 不使用strlen,求长度、复制、比较、连接

    char m[1024]="abcdef";
    //字符串长度
    int lenm=0;
    for(int i=0;m[i]!='\0';i++)
    {
        lenm++;
    }
    printf("%d\n",lenm);

    //字符串复制  strcpy(x,y)复制y到字符串x
    char n[1024]="qwe";
    int lenn=0;
    for(int i=0;n[i]!='\0';i++)
    {
        lenn++;
    }
    for(int j=0;j<lenn;j++)
    {
        m[j]=n[j];
    }
    m[lenn]='\0';
    printf("%s\n",m); 

    //字符串比较 strcmp(x,y)——如果x,y相同则返回0,X<Y返回小于0,X>Y返回大于0
    int num=lenm>lenn?lenm:lenn;
    int i;
    for(i=0;i<num;i++)
    {
        if(m[i]-n[i]!=0)
        {
            printf("不相等\n");
            break;
        }
    }
    if(i==num)
    {
        printf("相等\n");
    }

    //字符串拼接 strcat(源字符串,目的字符串)
    int size=sizeof(m);
    if(sizeof(m)>(lenn+lenm))
    {
        for(int i=0;i<lenn;i++)
        {
            m[lenm+i]=n[i];            
        }
        m[lenn+lenm]='\0';
        printf("%s\n",m);
    }
    else
    {
        printf("空间不足");
    }

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 统计文章中个字符的数量

	char m[3][80];
	int a,b,c,d;
	a=b=c=d=0;

	//输入字符串
	for(int i=0;i<3;i++)
	{
		printf("请输入第%d行的文字:",i+1);
		gets(m[i]);
	}

	//判断字符个数
	for(int i=0;i<3;i++)
	{
		for(int j=0;j<80;j++)
		{
			if(m[i][j]=='\0')
            break;
			if(m[i][j]>='A'&&m[i][j]<='Z')
			{
				a++;
			}
			else if(m[i][j]>='a'&&m[i][j]<='z')
			{
				b++;
			}
			else if(m[i][j]>='0'&&m[i][j]<='9')
			{
				c++;
			}
			else
			{
				d++;
			}
		}
	}
	printf("英文大写字母的个数为:%d\n",a);
	printf("英文小写字母的个数为:%d\n",b);
	printf("数字的个数为:%d\n",c);
	printf("空格及其他字符的个数为:%d\n",d);		

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 判断是否是回文

	char m[1024];
	char n[1024];
	printf("请输入一个字符串");
	scanf("%s",m);
	int a=strlen(m);

	for(int i=0;i<a;i++)
	{
		n[a-1-i]=m[i];
	}
	int b=strcmp(m,n);
	if(b==0)
	{
		printf("是回文\n");
	}
	else
	{
		printf("不是回文\n");
	}
	

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 统计字母空格数字和其他字符个数

	char m[1024];
	int a,b=0,c=0,d=0,e=0;
	printf("请输入一行字符:");
	gets(m);
	a=strlen(m);
	for(int i=0;i<a;i++)
	{
		//大写字母个数
		if(m[i]>='A'&&m[i]<='Z')
		{
			b++;
		}
		//小写字母个数
		else if(m[i]>='a'&&m[i]<='z')
		{
			c++;
		}
		//数字个数
		else if(m[i]>='0'&&m[i]<='9')
		{
			d++;
		}
		//空格及其他字符个数
		else
		{
			e++;
		}

	}
	printf("字符串为:");
	for(int i=0;i<a;i++)
	{
		printf("%c\t",m[i]);
	}

	printf("大写字母个数为:%d\n",b);
	printf("小写字母个数为:%d\n",c);
	printf("数字个数为:%d\n",d);
	printf("空格及其他个数为:%d\n",e);

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 大写转小写

	char m[1024];
	int a,b=0,c;
	printf("请输入一行字符:");
	scanf("%s",m);
	a=strlen(m);
	for(int i=0;i<a;i++)
	{
		if(m[i]>='A'&&m[i]<='Z')
		{
			b++;
			m[i]=m[i]+32;
		}
	}
	printf("%d\n",b);
	for(int i=0;i<a;i++)
	{
		printf("%c\t",m[i]);
	}

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 设置密码

	char m[1024];
	char n[1024];
	int a,b=1,c;

	printf("===========================\n");
	printf("请设置密码:");
	scanf("%s",m);
	printf("===========================\n");
	printf("请输入密码:");
	scanf("%s",n);

	a=strcmp(m,n);
	while(a!=0)
	{
		if(b==3)
		{
			printf("错误次数过多,已退出\n");
            printf("===========================\n");
			break;
		}
		printf("密码错误,请重新输入:");
		scanf("%s",n);
        getchar();
		a=strcmp(m,n);
		b++;
		
	}
	if(a==0)
	{
		printf("密码正确\n");
        printf("===========================\n");
	}

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 密码翻译

	int m;
	int i;
	char n[1024];
	//输入一行字符
	printf("请输入字符并以“!”结束\n");
	for(i=0;i>=0;i++)
	{
		printf("请输入第%d字符:",i+1);
		scanf("%c",&n[i]);
		if(n[i]=='!')
		{
			break;
		}
		getchar();
	}
	m=i+1;
	//打印输入的的字符
	printf("==================\n");
	printf("输入的字符为:\n");
	for(int i=0;i<m;i++)
	{

		printf("第%d字符:为%c\n",i+1,n[i]);

	}


	//字符变换
	for(int i=0;i<m;i++)
	{
		if(n[i]<'Z'&&n[i]>='A')
		{
			n[i]=n[i]+1;
		}
		else if(n[i]=='Z')
		{
			n[i]='A';
		}
		
	}

	//打印变换后的字符
	printf("==================\n");
	printf("变换后的字符为:\n");
	for(int i=0;i<m;i++)
	{
		if(n[i]<'Z'&&n[i]>='A')
		{
			
		}
		printf("第%d字符:为%c\n",i+1,n[i]);

	}

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 杨辉三角

	int n;
	printf("请输入要打印的杨辉三角行数:");
	scanf("%d",&n);
	int a[n][n];
    for(int i=0;i<n;i++)
    {
        printf("=======");
    }
    printf("\n");
	//给函数赋值
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<n;j++)
		{
			if(i==j||j==0)
			{
				a[i][j]=1;
			}
			else if(j>0&&j<i)
			{
				a[i][j]=a[i-1][j-1]+a[i-1][j];
			}

		}
	}
	//打印杨辉三角
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<n;j++)
		{
			if(j<=i)
			{
				printf("%d\t",a[i][j]);
			}
		}
		printf("\n");
	}
    for(int i=0;i<n;i++)
    {
        printf("=======");
    }

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 3个学生4门成绩

	int a[3][4];
	int c=0;
	//录入成绩
	for(int i=0;i<3;i++)
	{
		for(int j=0;j<4;j++)
		{
			printf("请输入第%d位学生的第%d门成绩;",i+1,j+1);
			scanf("%d",&a[i][j]);	
		}
	}

	//打印成绩表
	for(int i=0;i<3;i++)
	{
		for(int j=0;j<4;j++)
		{
			printf("%d\t",a[i][j]);
			c++;
			if(c%4==0)
			{
				printf("\n");
			}
		}
	}
	//每位同学的最高成绩
	int temp;
	temp=0;
	for(int i=0;i<3;i++)
	{
		for(int j=0;j<4;j++)
		{
			if(temp<a[i][j])
			{
				temp=a[i][j];
			}

		}
		printf("第%d位同学的最高成绩为:%d\n",i+1,temp);
		temp=0;
	}
	//每位同学的总成绩

	temp=0;
	for(int i=0;i<3;i++)
	{
		for(int j=0;j<4;j++)
		{
			temp+=a[i][j];
		}
		printf("第%d位同学的总成绩为:%d\n",i+1,temp);
		temp=0;
	}
    int sum=0;
	for(int j=0;j<4;j++)
	{
		for(int i=0;i<3;i++)
		{
			temp+=a[i][j];
		}
		printf("第%d门课程的平均成绩为:%d\n",j+1,temp/3);
        sum+=temp/3;
		temp=0;
	}
    printf("4门课程的总平均成绩为:%d\n",sum/4);
    return 0;

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 行列转换

	int a[3][3];
	int c=0;
	//给数组赋值
	for(int i=0;i<3;i++)
	{
		for(int j=0;j<3;j++)
		{
			printf("请输入%d行%d列值:",i+1,j+1);
			scanf("%d",&a[i][j]);
		}
	}
	//赋值后的数组
	for(int i=0;i<3;i++)
	{
		for(int j=0;j<3;j++)
		{
			printf("%d\t",a[i][j]);
			c++;
			if(c%3==0)
			{
				printf("\n");
			}
		}
	}

	
	//行列转换
	int b[3][3];
	for(int i=0;i<3;i++)
	{
		for(int j=0;j<=3;j++)
		{
			b[i][j]=a[j][i];
		}
	}
	printf("行列转换后为:\n");
	c=0;
	for(int i=0;i<3;i++)
	{
		for(int j=0;j<3;j++)
		{
			printf("%d\t",b[i][j]);
			c++;
			if(c%3==0)
			{
				printf("\n");
			}

		}
	}

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 对角线之和

	int x,sum1=0,sum2=0,sum;
	printf("请输入一个奇数:");
	scanf("%d",&x);
	int y=x;
	int a[x][x];
	for(int i=0;i<x;i++)
	{
		for(int j=0;j<x;j++)
		{
			printf("请输入%d行%d列的数:",i+1,j+1);
			scanf("%d",&a[i][j]);
		}
	}
	for(int i=0;i<y;y--)
	{
		sum1+=a[i][i];
		sum2+=a[y-1-i][i];
	}
	sum=sum1+sum2-a[x/2+1][x/2+1];
	printf("对角线元素之和为:%d\n",sum);

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 3*4矩阵中最大值及行列号

	int a[3][4];
	int temp,x,y;

	//键盘输入三行四列数组值
	for(int i=0;i<3;i++)
	{
		for(int j=0;j<4;j++)
		{
			printf("请输入%d行%d列的数:",i+1,j+1);
			scanf("%d",&a[i][j]);
		}
	}

	//打印数组值
	printf("输入的数组为:");
	for (int i=0;i<3;i++)
	{
		for(int j=0;j<4;j++)
		{
			printf("%d  ",a[i][j]);
		}
	}
	printf("\n");

	//找出最大值
	temp=a[0][0];
	for(int i=0;i<3;i++)
	{
		for(int j=0;j<4;j++)
		{
			
			if (temp<a[i][j])
			{
				temp=a[i][j];
				x=i;
				y=j;
			}

		}
	}
	printf("最大值为:a[%d][%d]=%d\n",x,y,temp);

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 加入新数组排序

	int sum=0,temp,n=0;

	printf("请输入数组内个数:");
	scanf("%d",&n);
	//键盘输入10个数
	int a[n];
	int b[n+1];
	for(int i=0;i<n;i++)
	{
		printf("请输入第%d个数:",i+1);
		scanf("%d",&a[i]);
	}

	//打印数组
	printf("这个数组为:");
	for(int i=0;i<n;i++)
	{
		printf("%d  ",a[i]);
	}
	printf("\n");

	//冒泡排序
	for(int i=0;i<n-1;i++)
	{
		
		for(int j=0;j<n-i-1;j++)
		{
			if(a[j]>a[j+1])
			{
				temp=a[j];
				a[j]=a[j+1];
				a[j+1]=temp;
			}		
		}
	}

	//打印排序后的数组
	printf("排序后的数组为:");
	for(int i=0;i<n;i++)
	{
		printf("%d  ",a[i]);
	}
	printf("\n");

	//输入一个数后的数组
	
	printf("请输入一个新的数:");
	scanf("%d",&b[0]);
	for(int i=1;i<n+1;i++)
	{
		b[i]=a[i-1];
	}
	//将新数组排序
	for(int i=0;i<=n;i++)
	{
		for(int j=0;j<n-i;j++)
		{
			if(b[j]>b[j+1])
			{
				temp=b[j];
				b[j]=b[j+1];
				b[j+1]=temp;
			}
		}
	}
	//将新数组输出
	for(int i=0;i<=n;i++)
	{
		printf("%d  ",b[i]);
	}
	printf("\n");

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 十进制转化二进制

	int i,j=1;
	int b,c;
	int x,y,z;
	int m,n;

	printf("请输入一个十进制数:");
	scanf("%d",&i);

	//计算数组大小
	m=i;
	while(m>1)
	{
		m=m/2;
		j++;
	}

	//将余数放到数组中
	int a[j];
	n=i;
	c=j;
	while(n>=1)
	{
		b=n%2;
		n=n/2;
	
		a[j-1]=b;
		j--;
	}

	//打印数组
	printf("二进制数为:");
	for(int i=0;i<c;i++)
	{
		printf("%d",a[i]);
	}

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 斐波那契数列

	int a,b=1,c=0;
	int n[30]={1};
	int i=0;
	for(int m=1;m<30;m++)
	{
		a=b+c;
		c=b;
		b=a;
		
		n[m]=a;
	}
	for(int m=0;m<30;m++)
	{
		printf("%d\t",n[m]);
		i++;
		if(i%5==0)
		{
			printf("\n");
		}
		
	}

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 数组排序求和求极值

	int sum=0,temp,n=0;
	printf("请输入数组内个数:");
	scanf("%d",&n);
	//键盘输入10个数
	int a[n];
	for(int i=0;i<n;i++)
	{
		printf("请输入第%d个数:",i+1);
		scanf("%d",&a[i]);
	}

	//打印数组
	printf("这个数组为:");
	for(int i=0;i<n;i++)
	{
		printf("%d  ",a[i]);
	}
	printf("\n");

	//求和
	for(int i=0;i<n;i++)
	{
		sum+=a[i];
	}
	printf("这个数组的和为:%d\n",sum);

	//逆序重新存放
	int b[n];
	printf("逆序后的数组为:");
	for(int i=0;i<n;i++)
	{
		b[i]=a[n-1-i];
		printf("%d  ",b[i]);
	}
	printf("\n");

	//平均值
	printf("这个数组的平均值为:%d\n",sum/n);

	//冒泡排序
	for(int i=0;i<n-1;i++)
	{
		
		for(int j=0;j<n-i-1;j++)
		{
			if(a[j]>a[j+1])
			{
				temp=a[j];
				a[j]=a[j+1];
				a[j+1]=temp;
			}		
		}
	}

	//打印排序后的数组
	printf("排序后的数组为:");
	for(int i=0;i<n;i++)
	{
		printf("%d  ",a[i]);
	}
	printf("\n");

	//最大最小值
	printf("该数组的最大值为:%d\n",a[n-1]);
	printf("该数组的最小值为:%d\n",a[0]);
	

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 比赛对手

	int x=88,y=89,z=90;
	int a,b,c;
	for(a=88;a<=90;a++)
	{

		if(a!=x)
		{
			for(c=88;c<=90;c++)
			{
				if(c!=x&&c!=z&&c!=a)
				{
					b=x+y+z-a-c;
					printf("A的比赛对手为:%c\nB的比赛对手为:%c\nC的比赛对手为:%c",a,b,c);
				}
			}
		}
	}

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 猴吃桃

	int x,y,z;
	int i,j=1;
	for(i=1;i<10;i++)
	{
		j=(j+1)*2;
	}
	printf("%d\t",j); 
	

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 分解质因数

 	int x,y;
	int a,b,c=0,d;
	printf("请输入一个正整数:");
	scanf("%d",&x);
	printf("将%d因式分解后得到的数为:",x);
	a=x;
	for(x;x>1;x--)
	{
		for(y=x-1;y>=1;y--)
		{
			if(x%y==0&&y>=2)
			{
				break;
			}
			else if(y<2)
			{
				if(a%x==0)
				{	
					b=a;
					printf("%d\t",x);
					while(b%x==0)
					{
						
						b=b/x;
						c++;					
						
					}
					for(c;c>1;c--)
					{
						printf("%d\t",x);
					}
					c=0;					
				}
				
				
			}
		}

	}

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 求Sn

	int a,n,sn=0;
	int x,y=0,z;

	printf("请输入一个10以内的数字:");
	scanf("%d",&a);
	printf("请输入该数字的位数:");
	scanf("%d",&n);
	sn=x=y=a;
    printf("Sn的和为:%d",a);
	for(n;n>1;n--)
	{
		x*=10;
//		printf("%d\t",x);
		y+=x;
		printf("+%d",y);
		sn+=y;
//		printf("%d\n",sn);
	}
	printf("=%d\n",sn);

	return 0;

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 数列20项和

	float x,y,z;
	float a,b,c=0;
	x=1;
	y=2;

	for(z=1;z<=20;z++)
	{
		a=y/x;
		b=y;
		y=x+y;
		x=b;
		c=c+a;
		printf("%f\t",a);
		printf("\n%f\t",c);
	}

	return 0;

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 完全数

	int x,y;
	int a,b,c;

	for(x=10000;x>1;x--)
	{
		a=0;
		for(y=x-1;y>=1;y--)
		{
			
			if(x%y==0)
			{
				//printf("%d\t%d\n",x,y);
				a+=y;
			}
			
		}
		if(x==a)
		{
			printf("\t%d\n",x);
		}
	}

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 本利之和

	float x,y=1;
	float r=0.0225;
	int n;
	printf("请输入存款金额:");
	scanf("%f",&x);
	printf("请输入存款年限:");
	scanf("%d",&n);
	for(n;n>0;n--)
	{
		y=(1+r)*y;
	}
	printf("本利之和为:%f",y*x);

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 人民币兑换

	int x,y,z;
	int a,b;
	for(x=1;x<20;x++)
	{
		for(y=1;y<50;y++)
		{
			for(z=1;z<100;z++)
			{
				a=5*x+2*y+z;
				b=x+y+z;
				if(a==100&&b==50)
				{
					printf("5分的数量:%d\t2分的数量:%d\t1分的数量:%d\n",x,y,z);
				}
			}
		}
	}

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 素数

	int x,y,z;
	int a=100,b;
	for(a;a<=200;a++)
	{
		for(b=a-1;b>0;b--)
		{
			if(a%b==0&&b>=2)
			{
				break;
			}
			else if(b<2)
			{
				printf("%d\n",a);
			}
			
		}
	}


	int x;
	int a=100,b;
	for(a;a<=200;a++)
	{
		for(b=a-1;b>0;b--)
		{
			if(a%b==0&&b>=2)
			{
                x=0;
				break;
			}
            else
            {
                x=1;
            }
		}
        if(x)
        {
            printf("%d\t",a);
        }
	}


///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 水仙花数

	int x,y,z;
	int a,b,c;
	for(x=100;x<=999;x++)
	{
		a=x/100;
		b=x%100/10;
		c=x%10;
		if(x==a*a*a+b*b*b+c*c*c)
		printf("%d\n",x);
	}

#include"stdio.h"
#include"math.h"

int main()
{
	int x,y,z;
	int a,b,c;
	for(x=100;x<=999;x++)
	{
		a=x/100;
		b=x%100/10;
		c=x%10;
        y=pow(a,3)+pow(b,3)+pow(c,3);
		if(x==y)
		printf("%d\n",x);
	}

	return 0;
}

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////

/* 三位相乘求和

	int x,y=0;
	for(x=2;x<=100;x=x+2)
	{
		y+=(x-1)*x*(x+1);
	}
	printf("%d\n",y);

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 阶乘和

	int i,a,b=1,c=0;

	for(i=1;i<=10;i++)
	{
		a=i;
		for(a;a>1;a--)
		{
			b=b*a;
		}
		c+=b;
		b=1;
	}
	printf("%d\n",c);

	return 0;

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////

/* 输出最大值

	int a,b,c;
	scanf("%d%d%d",&a,&b,&c);
	printf("\n%d is biggest",(c>(a>b)?a:b)?c:(a>b)?a:b);
	return 0;

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 一年多少秒

	printf("%d\n",60*60*24*365);
	return 0;	

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 周长 面积

	int x,y;
	scanf("%d%d",&x,&y);
	int z;
	z=2*(x+y);
	printf("周长:%d\n",z);
	printf("面积:%d\n",x*y);
	return 0;

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* A变a

	char ch='A';
	printf("%c\n",ch+32);
	return 0;

/* 平均数

	double a,b,c;
	scanf("%lf%lf%lf",&a,&b,&c);
	printf("%.1lf\n",(a+b+c)/3);
	return 0;

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 弧度

	float a,b,c,d;
	scanf("%f",&a);

	b=a*57.3;
	c=(b-(int)b)*60;
	d=(c-(int)c)*60;
	
	printf("%d弧度=%d角度%d弧分%d弧秒\n",a,(int)b,(int)c,(int)d);
	return 0;

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 字符

	char a;
	scanf("%c",&a);
	printf("前导字符:%c\n该字符:%c\n后续字符:%c",a-1,a,a+1);
	return 0;	

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 转换

	int a,b;
	scanf("%d%d",&a,&b);
	printf("转换后:\na=%d\nb=%d",a^b^a,a^b^b);
	return 0;

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 17整除

	int a=100;
	while(a%17!=0)
	a--;
	printf("%d\n",a);
	return 0;	

	int a;
	for(a=100;a%17!=0;a--);
	printf("%d\n",a);
	return 0;

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 闰年

	int a;
	scanf("%d",&a);
	if(a/4==0)
	printf("是闰年");
	else
	printf("不是闰年");
	return 0;

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 不被3整除

	int x,y=0;
	for(x=200;x<=400;x++)
	{
		if(x%3!=0)
			y+=x;
	}
	printf("%d",y);
	return 0;

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 分母求和

	float x,y,a=0,b=0,z;
	for(x=2;x<=100;x=x+2)
	{
		a=a+1/x;
	}	
	for(y=1;y<=100;y=y+2)
	{
		b=b+1/y;
	}
	z=b-a;
	printf("%f\n",z);
	return 0;

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 三位数

	int a,b,c;
	int x,y,sum;
	for(a=1;a<10;a++)
	{
		for(b=0;b<10;b++)
		{
			for(c=1;c<10;c++)
			{
				x=100*a+10*b+c;
				y=100*c+10*b+a;
				sum=x+y;
				if(sum==1333)
					printf("a=%d,b=%d,c=%d\n",a,b,c);
			}
		}
	}
	return 0;

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 个位为7

	int x;
	for(x=200;x<=400;x++)
	{
		if(x%3==0&&x%100%10==7)
			printf("%d\n",x);
	}
	return 0;

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/* 跳出循环

	int x,y;
	for(x=0;x<=10;x++)
	{
		printf("%d",x);
		if(x==4)
		break;
	}	

	for(y=0;y<=10;y++)
	{
		
		if(y>4)
		{
			continue;
		}
		else
		{
			printf("\t%d",y);
		}
					
	}
	return 0;

///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
/*输出y值

	int x,y;
	scanf("%d",&x);
	if(x<1)
	{
		printf("%d\n",x);
	}
	else if(1<=x<10)
	{	
		printf("%d\n",2*x-1);
	}
	else
	{
		printf("%d",3*x-11);
	}
	return 0;

标签:int,scanf,float,C语言,char,printf,习题,输入
From: https://www.cnblogs.com/Ron01/p/17489326.html

相关文章

  • 2.c语言数据类型
    c语言数据类型如图:图中的单位为byte(字节),1byte=8bit.整形数据的存储都是以补码的形式存储的对于负数,进行以下的转换:如数-254,在存储该数时:先对其取绝对值在转换成二进制对二进制数取反加一即可。对于浮点数的存储,采用诸如下面的存储方式:3.14=0.314*......
  • 【C语言】时间结构体
    本文主要就C语言中常用类型time_t具体分析。一、定义首先来看一下定义,原来是一种类型重命名。/*File:/usr/include/time.h*/typedef__time_ttime_t;库文件中使用的其实是__time_t这个命名。/*File:/usr/include/bits/time.h*/structtimeval{__time_ttv_se......
  • 20230628习题总结
    1.P6891[JOISC2020]ビルの飾り付け4本题如果按照最直接的方式dp时空都是\(O(n^2)\)。可以用一个常用的优化:交换下标和值,用dp数组维护一个集合(可以证明是一个区间,于是用左右端点表示)。2.P7216[JOISC2020]美味しい美味しいハンバーグ正解是2-SAT,但是太麻烦,码量大难想。其......
  • 逍遥自在学C语言 | 函数初级到高级解析
    前言函数是C语言中的基本构建块之一,它允许我们将代码组织成可重用、模块化的单元。本文将逐步介绍C语言函数的基础概念、参数传递、返回值、递归以及内联函数和匿名函数。一、人物简介第一位闪亮登场,有请今后会一直教我们C语言的老师——自在。第二位上场的是和我们一......
  • 初始C语言(20)指针(2)
    一:野指针1:指针未初始化:#include<stdio.h>intmain(){ int*p;//局部变量未初始化,则被认为是随机值 *p=20; return0;}2:越界访问#include<stdio.h>intmain(){ intarr[10]={0}; int*p=arr; for(inti=0;i<=20;i++)//超出了arr的范围,称为野指针 {......
  • c语言精度升级
    #include<stdio.h>intmain(){chari=128;printf("%d",i+1);return0;} 结果:  10000000 --128 10000001  --补码+1精度升级11111111111111111111111110000001-补码11111111111111111111111110000000-补码-110000000000000000000000001111111-取......
  • C语言中的数据加密和解密技术
    C语言中的数据加密和解密技术数据加密是计算机安全领域中非常重要的一项技术,它可以将敏感的数据转化为一种无法理解或解读的形式,以保护数据的机密性和完整性。在C语言中,我们可以使用各种算法和技术来实现数据的加密和解密操作。本文将介绍在C语言中进行数据加密和解密的基本概念和......
  • C语言中的图形编程:绘图和图形界面
    C语言中的图形编程:绘图和图形界面图形编程是计算机科学领域中一个重要的方向,它涉及到在计算机屏幕上创建图形和图像的技术。在C语言中,我们可以使用不同的库和工具来进行图形编程,实现各种各样的绘图和图形界面。本文将介绍在C语言中进行图形编程的基本概念和常用库,以及展示一些实例......
  • C语言snprintf追加拼接字符串
    原文地址:https://www.cnblogs.com/liqinglucky/p/snprintf.html在使用log函数打印时想打印整个结构体的值出来,但是结构体比较大,如果用log函数一行一行打印显示效果不好。就想用snprintf追加拼接字符串到一个buffer里,最后再把整个buffer打印出来。这样可以方便的调整buffer里的内......
  • 自学C语言2023_6_27
    注释:快捷键:ctrl+k+c(先按k再按c)将选中行注释ctrl+k+u(先按k再按u)取消注释注释的作用是解释代码,注释内容不会运行选择语句:循环语句:  ......