一百行简单C语言编程,要有解析的啊,速求啊,

发布网友 发布时间:2022-04-23 02:34

我来回答

2个回答

热心网友 时间:2023-10-11 22:34

////排列
////////////////////////////////输入数字字符,使之拼成一个数,且输出的第一个数为各位依次类推如 12 -》21
/*
#include <stdio.h>

int main(void)
{
char c1, c2;
int x;
int i;
c1 = getchar();
c2 = getchar();

printf("%c%c\n", c2, c1); // 如只是简单输出
x = (c1 - '0') + (c2 - '0') * 10; // 转换成数值

printf("%d\n", x); // 输出数值
return 0;
}
*/
//////////////////////////////////////输入数字字符串,使得输入的数字第一个输入的排到最后一位,依次排列,最后一个输入的排到第一位
/*
#include <stdio.h>
#include <string.h>
int main(void)
{
char s[1000] ,*p;//定义字符数组,字符指针变量
int c ;//c用来获取输入字符的个数
int j;//J用来计算循环次数
int i;// i用来内部循环数字调换
char temp;//temp用来存储c个字符中末尾的那个字符

p = s;//将字符数组的地址传给指针变量p使得P拥有s一样的首地址
c = strlen( gets(s));//利用strlen函数得到输入字符的个数

printf("%d\n",c);//输出输入的字符个数

for(j = 1;j<c;j++)
{

//temp = *(p+c-1);
temp = *(p +c-j);//p+c-j,当j=1,temp = 4 ,因为如 1 2 3 4,当执行完下面的数字交换语句后
printf("yaode %c\n",temp);// 4 1 2 3,此时只需要在 1 2 3中进行排序当j=2时temp = 3,否则若超出p+3,temp未知
//for(i=0;i<c-1;i++)
for(i=0;i<c-j;i++)
{
//*(p+c-i-1) = *(p+c-1-i-1);
*(p+c-i-j) = *(p+c-1-i-j);// 当i=0,1 2 3 4 ,将p+2->3赋给p+3,1 2 3 3.
}//当i=1,p+1->2赋给p+2,1 2 2 3 ..依次循环

*p = temp;//执行完第一个for(i)循环 1 1 2 3,此时将temp 的值赋给*p即第一个数字处, 4 1 2 3
p = s; ////////忘记了回归原位 //执行完上面的语句,p此时复位到&s[0],因为下面p = p + j使得p在不断的发生变化
printf("%s\n",p);
p= p+j;
}

p = s; //////////忘记了回归原位
printf("The last result is :%s\n",p);
return 0;
}

*/
////////////////////////////////////商,余,++
/*
#include <stdio.h>

int main(void)
{
int i;
int j;
float m,n;
int k;
int j1,j2,j3;
printf("取余和商的题\n");
/////////////////////////////取余和商的题
i = -5/3;
j = 5/3;
m = 5.0/3;
n = 5/3.0;

printf("%d,%d,%f,%f\n",i,j,m,n);

i = 5%3;
j = 5%(-3);
//m = 5.0%3;
//n = 5%3.0;////// '%' : illegal, right operand has type 'const double'
k = -5%3;
printf("%d,%d,%d \n",i,j ,k );

//////////////////////////////////////////////////////////////////////关于i++,++i的一些东西
printf("关于i++,++i的一些东西\n");
i = 1;
j = 5;
k = 0;

k = i++;
printf("k = %d, i = %d\n",k,i);
j = ++i;
printf("k = %d,j = %d,i = %d \n" ,k,j,i );

i = 3;
printf("i = %d \n",i );
printf("%d,%d\n",i,i++);
printf("i = %d \n",i );

printf("%d,%d\n",i,++i);
printf("i = %d \n",i );

printf("%d,%d,%d\n",i,i++,++i);
printf("i = %d \n",i );///////////////////////i=7
j1 = i;
j2 = ++i;
j3 = i++;
printf("j1 = %d,j2 = %d,j3 = %d\n",j1,j2,j3);//////////////8 8 7
printf("i = %d \n",i );//////////////////

i = 7;
printf("i = %d \n",i );
printf("i1 = %d,i2 = %d, i3 = %d\n",i,++i,i++);
printf("i = %d \n",i );

i = 7;
printf("i = %d \n",i );
printf("i1 = %d,i2 = %d,i3 = %d\n" ,i,i++,++i);
printf("i = %d \n",i );
return 0;
}
*/

////////////////////////不同类型数据间的混合运算
/*
#include <stdio.h>

int main(void)

{
char c1,c2;

c1 = 'A';
c2 = c1 + 32;

printf("%d\n",c2); ////////////说明系统自动将字符用ASCII代码输出,也可与整数进行的运算
printf("%c\n",c2);
return 0;
}
*/

/////////////////////////////////////////////////强制类型转换运算符

/*
(double)a;//////将a转换成double 型
(int)(x+y);//////将x+y的值转换成int型
(float)(5%3);////将5%3的值转换成float 型
*/

/*///////////////////////////////////////////////////语句
1 控制语句:用来完成一定控制功能1.if()....else... 2. for()... 3.while()...... 4. do....while()....
5.continue 结束本次循环语句 6.break 终止执行switch或循环语句 7.switch 多分支选择语句
8.return 从函数返回语句 9.goto 转向语句(结构化程序中基本不用goto语句)
2 表达式语句:一个表达式后加一个分号就形成了一个表达式语句 a=1;(赋值表达式语句)
3 函数调用语句: 由一个函数调用加一个分号构成例如: printf(" "....);
4 空语句 : ; 只有一个分号,什么也不做。用来作为流程的转向点(流程从程序其它地方转到此语句处),也可以用来作为循环语句中的循环体(
循环体是空语句,表示循环体什么都不做)
5 复合语句:可以用{}把语句和声明括起来成为复合语句
*/

///////////////////////////////////////赋值中的类型转换

/*
l
*/

/*
#include <stdio.h>

int main(void)

{
float i;
double d;
d = 1.12345931231;
i = d;
printf("%f\n",i);
printf("%lf\n",i);
printf("%d\n",i);

i = 'A';
printf("%f\n",i);//////说明'A'只能赋给整形变量,因为ASCII是以整形数字的形式对应字符
i = 'A';
printf("%d\n",i);
int k;
k = 'A';
printf("%d\n",k);
return 0;
}

*/

/*

热心网友 时间:2023-10-11 22:35

/*输入年月 程序打印天数*/
#include <stdio.h>

void MonthP(int year,int month);

int main(void)
{
int year, month;

printf ("输入年月,输入非数字结束.\n");
while (scanf("%d%d", &year, &month) != NULL)
{
MonthP(year, month);
printf ("\n\n继续输入: \n");
}

return 0;
}
//大: 1 3 5 7 8 10 12
//小: 4 6 9 11
//平月 2
void MonthP(int year,int month)
{
int day;

if(month >= 1 &&
month <= 12)
{
printf("year - %d month - %d\n",

year, month);//输出年月
printf(" 周一 周二 周三 周四 周五 周六 周日\n");

if(month == 2)//是二月
{
if(year%400 == 0 || (year%4 == 0 && year%100 != 0))//判断润/平年
{
for(day = 1; day <= 29; day++)
{
if(day % 7 == 0)
printf("\n");
printf(" %8d", day);

}
}
else
{
for(day = 1; day <= 28; day++)
{
if(day % 7 == 0)
printf("\n");
printf("%8d", day);
}
}
}

else//不是二月
{
if (month == 4 || month == 6 || month == 9 || month == 11)
{
//天数少的月份
for(day = 1; day <= 30; day++)
{
if(day % 7 == 0)
printf("\n");
printf("%8d", day);
}
}

//天数多的月份
else
{
for(day = 1; day <= 31; day++)
{
if(day % 7 == 0)
printf("\n");
printf("%8d", day);
}
}
}
}

else
{
printf("超范围!重新输入年月:\n");
return ;
}
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com