概述
1.输入圆柱半径r,高度h, 求圆柱体表面积S.
#include <stdio.h>
#include <stdlib.h>
int main()
{
float r,h,S;
float pie = 3.1415926;
printf("请输入圆柱体的半径r和高h");
scanf("%f %f",&r,&h);
S = 2*r*h*pie+2*pie*r*r;
printf("此圆柱体的表面积为:%f",S);
return 0;
}
2.根据自变量x,求y,y和x的关系如下(分段函数):
#include <stdio.h>
#include <stdlib.h>
int main()
{
float x,y;
scanf("%f",&x);
if(x<=3){
y= 2*x-1;
}else if(x>3&&x<=7){
y=5*x;
}else{
y=6;
}
printf("y=%f",y);
return 0;
}
3.输入正整数n,求数列和S = 1+3+5+...+(2n-1);
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,S=0,i=0;
printf("请输入正整数n n");
scanf("%d",&n);
//S = n*n;// 高斯公式:(1+(2n-1))*n/2
for(i=1;i<=n;i++){
S=S+(2*i -1);
}
printf("n 数列和S=%d",S);
return 0;
}
4.输入一个正整数数组a[n],找出最大值max及其下标m。
#include <stdio.h>
int main(void){
int n;
printf("请输入正整数n n");
scanf("%d",&n);
int a[n],i,max,m;
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
max=a[0];
m=0;
for(i=0;i<n;i++){
if(max<a[i]){
max=a[i];
m=i;
}
}
printf("最大值max=%d,下标位m=%d",max,m);
return 0;
}
5.输入一个正整数数组a[n],使用冒泡排序法从大到小排序并输出;
#include <stdio.h>
int main(void){
int n;
printf("请输入正整数n n");
scanf("%d",&n);
int a[n],i,j,k,temp;
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
// 冒泡排序
for (j=0; j<n-1; j++) {/* 外循环为排序趟数,len个数进行len-1趟 */
for (k=0; k<n-1-j; k++) { /* 内循环为每趟比较的次数,第i趟比较len-i次 */
if (a[k] > a[k+1]) { /* 相邻元素比较,若逆序则交换(升序为左大于右,降序反之) */
temp = a[k];
a[k] = a[k+1];
a[k+1] = temp;
}
}
}
// 打印排序后的数组
for(i=0;i<n;i++){
printf("%d ",a[i]);
}
return 0;
}
6.输入一个3X2的整型数组,将其转置为2X3型.
#include <stdio.h>
int main(void){
int a[3][2],b[2][3];
int i,j;
for(i=0;i<3;i++){
for(j=0;j<2;j++){
scanf("%d",&a[i][j]);
}
for(i=0;i<2;i++){
for(j=0;j<3;j++){
b[i][j]=a[j][i];
}
}
printf("转置前:n ");
for(i=0;i<3;i++){
for(j=0;j<2;j++){
printf("%d ",a[i][j]);
}
printf("n");
}
printf("转置后:n ");
for(i=0;i<2;i++){
for(j=0;j<3;j++){
printf("%d ",b[i][j]);
}
printf("n");
}
return 0;
}
7.编写程序,将一个字符串从第k个字符开始的连续n个字符复制到另外一个字符串中。
#include <stdio.h>
void substr(char *a,int k,int n,char *b)//将a中第m个开始的n个字符复制到b中。
{
int i,j=0;
for(i=m-1;i<m+n-1;i++){
b[j++]=a[i];
}
b[j]='