c语言的问题汇总

简介: c语言各类问题

定义一个结构体,有两个成员变量,一个整型的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]);

相关文章
|
7月前
|
Java 编译器 程序员
C语言 (3)
C语言 (3)
42 0
|
C语言
C语言练习
C语言练习。
72 1
|
7月前
|
程序员 C语言
C语言
C语言
43 0
|
2月前
|
Java Unix Linux
1.3 C语言的应用范围
C语言自20世纪80年代以来一直是主流编程语言,适用于小型计算机、个人电脑及大型机。因其高效紧凑且易于修改和移植,广泛用于软件开发。尽管后来C++和JAVA流行起来,但C语言仍然是软件行业核心,并在嵌入式系统、科学编程和操作系统开发如Linux中扮演重要角色。即使到现在,掌握C语言仍是一项重要技能。不是必须得是计算机专家才能使用C语言,学习C语言同时也能学到很多C++的知识。
51 8
|
2月前
|
Unix 程序员 C语言
初识C语言
C语言源于1972年,由贝尔实验室的丹尼斯·里奇和肯·汤普逊在开发UNIX操作系统过程中设计。它基于B语言改进而成,旨在成为一种实用的编程工具。尽管许多语言追求教育或易用性目标,但专为程序员设计的C语言,如今已成为主流编程语言之一。
28 8
|
2月前
|
小程序 C语言
怎么学C语言?干货
怎么学C语言?干货
40 0
|
存储 编译器 C语言
你应该知道的C语言干货(1)
小数直接写出来编译器默认为double类型,后面加上f才是float类型
86 0
|
C语言
C语言中的坑(1)
C语言中的坑(1)
52 0
|
7月前
|
C语言
C语言中的exit函数
C语言中的exit函数
146 0
|
C语言 C++
C语言的初步简单认识
C语言的初步简单认识
107 1