定义一个结构体,有两个成员变量,一个整型的n,一个字符型的c,利用结构体类型声明一个具有5个元素的数组,并随机初始化,根据成员变量n进行从小到大排序,然后输出
冒泡排序然后 在输出结构体
include
struct d
{
int x;
char y;
};
int main(void)
struct d a[5];
int i,d;
int b[6];
for(i=0;i<5;i++)
scanf("%d%c",&a[i].x,&a[i].y);
}
b[i]=a[i].x;
for(d=0;d<5-i;d++) if(b[d]>b[d+1])
b[6]=b[d]+b[d+1];
b[d]=b[6]-b[d];
b[d+1]=b[6]-b[d];
for(d=0;d<5;d++) if(b[i]==a[d].x) printf("%d%c",a[d].x,a[d].y); return 0; //字母 顺序输出 char a,b; scanf("%c%c",&a,&b); if(a>b)
while(a>=b)
{
printf("%c",a);
a--;
}
else
while(b>=a)
{
printf("%c",b);
b--;
}
//输出数组的个数比较多的 数字
int main (void)
int a1[10],a2[10]={0,0,0,0,0,0,0,0,0,0},a3[10];
int i,j,Max=0,ci=0,k=0;
for(i=0;i<10;i++)
{
scanf("%d",&a1[i]);
}
for(j=0;j<10;j++)
for(i=0;i<10;i++)
{
if(a1[j]==a1[i])
{
a2[j]++;
}
}
if(Max<a2[i])
Max=a2[i];
j=0;
if(Max==a2[i])
for(j=0;j<k;j++)
{
if(a3[j]==a1[i])
{
ci++;
}
if(ci==0)
printf("%d",a1[i]);
a3[k]=a1[i];
k++;
}
else
break;
return 0;
//杨辉三角
include
main()
{ int i,j,n=0,a[17][17]={0};
while(n<1 || n>16)
{ printf("请输入杨辉三角形的行数:");
scanf("%d",&n);
}
for(i=0;i=0;k--)
// if(a[k][0]!=32)
printf("%c\n",a[k][0]);
}
char a[100][12];
数字分解求和
include
void swap(int a)
int i=0,sum=0,j,k,b=0;
for(j=1;j<a;j++)
for(i = j; i < a;i ++)
sum += i;
if(sum == a )
{
sum = 0;
b++;
printf("%d=",a);
for(k = j;k < i;k ++)
printf("%d+",k);
printf("%d\n",i);
break;
}
sum=0;//每次用过后清零 否则 影响下次的求和
}
if(b==0)
printf("无法分解");
int main( void)
int a;
scanf("%d",&a);
swap(a);
//输入三个数字 啊a b c c为步长
按顺序 输出 a到b的数组 步长为c 例如
1 3 1 输出:1 2 3
void swap(int a, int b, int c)
int i=0;
if(a>b)
for(i=a;i>=b;){
printf("%d",i);
i-=abs(c);
else
for(i=a;i<=b;)
i+=abs(c);
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
swap(a,b,c);
//代码效果参考:http://www.zidongmutanji.com/bxxx/466186.html
//1元钱能买一瓶汽水,喝完后n个空瓶可以换一瓶汽水。实现一个函数,传递一个整形的钱数m,一个整形的兑换比例n,返回最多能喝到的汽水数,并在main函数里将返回值输出。
int swap(int x, int y)
int a,sum = x;
a=x;
for (;(a/y)>0 ; ) {
sum+=a/y;
a=a/y+a%y;
//sum=sum-a%y;
return sum;
int a,b;
scanf("%d%d",&a,&b);
printf("%d",swap(a,b));
//n的末尾的0
的个数
include //算法思想 是 把每个因数分解 计算因数中含有5的个数 5的个数就是结果
int Sum(const int n)
if(n<5) return 0;
int counter=0,i;
for(i=5;i<=n;i++){
int flag=i;
while(flag%5==0)
flag/=5;
counter++;
return counter;
int a;
scanf("%d",&a);
int b=Sum(a);
printf("%d",b);
//魔幻方阵 就是 横竖斜 相加数值都相等
include"stdio.h"
void main()
int a[15][15]={};
int n,i,j,k,p,q;
scanf("%d",&n);
i=0;
j=(n/2);
a[i][j]=1;
for(k=2;k<=n*n;k++)
p=i;
q=j;
j++;
if(i<0) i=n-1; if(j>n-1)
j=0;
if(a[i][j]!=0)
i=p+1;
j=q;
a[i][j]=k;
for(i=0;i=0;j--)
printf(" %3d ",a[i][j]);
//字符统计 输入不限个数数字 进行升序排序
、//跳出循环用数字与数字中间的空格判断 如果是\n就跳出循环
include
int array[]={};
int i,j,x=0,k;
char c;
for(i = 0 ; ; i++){
scanf("%d%c",&x,&c);
array[i] = x;
if(c == '\n')
break;
for (j=0; j<=i; j++) {
for (x=0; x <= i-j-1; x++) {
if (array[x]>array[x+1]) {
int s=array[x]+array[x+1];
array[x]=s-array[x];
array[x+1]=s-array[x];
for (k = 0;k <= i ; k ++) {
printf("%d",array[k]);
//围圈报数 输入 4 8
输出 1 2 3 4
0 0 0 5
0 0 0 6
0 0 8 7
include
int main(void){
int a,i,j,x,y,n,k;
scanf("%d%d",&n,&k);
a = (int) malloc(sizeof(int)n);
for(i=0; in-1|| a[x][y+1]!=0) {j=1;x++;}
else y++;
break;
case 1:
if(x+1>n-1 || a[x+1][y]!=0){j=2;y--;}
else x++;
case 2:
if(y == 0 || a[x][y-1]!=0){j=3; x--;}
else y--;
case 3:
if(a[x-1][y]!=0){j=0; y++;}
else x--;
for(i=0;i 1 ; i ++) {
if (num[i] == 1) {
count++;
if(count == b)
{
a--;
num[i]=0;
count=0;
}
if(i == c-1) // 循环的范围是 小于人的个数
i = -1;
for (i = 0; i < c; i ++) {
if (num[i] == 1) {//输出最后一个人的 号码
printf("%d",i+1);
}
//小明一次可以爬一级或者二级台阶 试问n级台阶 小明来走共有几种走法
int fun(int red,int n,char temp[],int k)
int i,j;
static int sum=0;
if(red==0)
for(i=1;i<=n;++i)
//printf("y");
//printf("\n");
sum++;
else if(n==red)
for(i=1;i<=red;++i)
{// printf("r");
//printf("r");
temp[k++]='r';
fun(red-1,n-1,temp,k);
k--;
{ // printf("%c",temp[j]);
//printf("y");
temp[k++]='y';
fun(red,n-1,temp,k);
}int main()
int n,k,i,d,s=0;
char temp[100];
scanf("%d",&n );
for (i=0; i <= n/2; i++) {
k = n - 2 * i;
d=i+k;
s = fun (i,d,temp,0);
printf("%d",s);
比如:
输入:F
输出:
FEDCBA
EDCBAB
DCBABC
CBABCD
BABCDE
ABCDEF
char i, j , k ,sum=0;;
int count=0;
scanf("%c",&k);
sum = k - 'A'+1;
// printf("%d",sum);
for (i = k ; i >= 'A' ; i --) {
count = 0;
for (j = i ; j >= 'A' ; j --) {
printf("%c",j);
count++;
if(count == sum)
j++;
for (j++; ; j++) {
if (count == sum)
//代码效果参考:http://www.zidongmutanji.com/bxxx/162088.html
//二维数组村字符串
用一维指针字符数组来存二维字符数组
char n[90];
int i;
for (i = 0; i < 90; i ++){
n[i]=(char)malloc(sizeof(char)50);//动态申请字符的空间
scanf(“%s”,n[i]);//每个字符串
for (i=90; i>= 0; i --) {
if(n[i])//如果不为null 那么输出
printf("%s",n[i]);
//输入不定数 数组 来排序
//scanf 与getchar 区别 getchar只会接受字符
scanf(%d,a)只读取数字 留下空格 和回车 每次只读取一个数字
int a[100] = {};
int n = 0;
int i = 0;
printf("请输入数字以空格分隔开,以回车结束:\n");
do
scanf("%d", &n);//读取数字 下个字符是空格正好给了getchar 最后一个是回车 正好给getchar读取 跳出循环
a[i] = n;
i++;
while (getchar() != '\n');
for (int j = 0; j < i ; j++)
printf("%d ", a[j]);
//指针 排序数组 数组个数不限
void desc( int a ,int n)
int i = a,j = i+ 1,temp, x= 0, k = a + n ;//i是数组初始地址 temp是 变量 k是数组结束地址
// printf("%d",k);
for ( x = 0; x < n ;x ++ )
for ( i = a ; i < k - 1 - x ; i ++)
j= i + 1;//i 与j 是地址 k也是地址
if ( i > j )//i是 i指向的 数值
temp = i; i = j; j = temp;
void desc(int num, int n);
int num[10];
int i = 0, k = 0;
do{
scanf("%d",&num[i]);
}while(getchar()!= '\n');
desc(num, i);
for (k=0; k < i; k ++) {
printf("%d",num[k]);
//定义一个一维字符指针数组,并利用不定长字符串将其初始化,最后一段字符串以‘@’结尾,然后将各字符串输出。
输入:
abc
ddde
abce@
char n[10];
char p [100][20];
int i = 0 , j , k1 = 0, k2 , k3;
for (i = 0; i < 10; i ++){
n[i]=p[i];
scanf("%s",n[i]);
for (j = 0; j < 20; j ++) {
if(n[i][j] == '@'){
k1=1;
k3=j;
if (k1 == 1 ) {
for (k1 = 0; k1 < i; k1 ++) {
printf("%s",n[k1]);
for (k2 = 0; k2 < k3; k2 ++) {
printf("%c",n[k1][k2]);