简单C语言问题求解

作者&投稿:羿姜 (若有异议请与网页底部的电邮联系)
~

问题1:

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

int main() {

int a[8], i, j;

srand(time(0));

for (i = 0; i < 8; i++) {

a[i] = rand() % 100;

}

for (i = 0; i < 7; i++) {

for (j = i + 1; j < 8; j++) {

if (a[i] > a[j]) {

int temp = a[i];

a[i] = a[j];

a[j] = temp;

}

}

}

for (i = 0; i < 8; i++) {

printf("%d ", a[i]);

}

printf("
");

return 0;

}



1、定义长度为8的整型数组a[8],随机赋值后使用嵌套循环实现数组数据元素从小到大排列。
使用冒泡排序实现从小到大排序:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define LEN 8
int main(void) {
int a[LEN];
// 随机赋值
srand((unsigned)time(NULL));
for (int i = 0; i < LEN; i++) {
a[i] = rand();
}
// 冒泡排序
for (int i = 0; i < LEN - 1; i++) {
for (int j = 0; j < LEN - 1 - i; j++) {
if (a[j] > a[j + 1]) {
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
// 输出排序后的数组
for (int i = 0; i < LEN; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
这段代码首先初始化一个长度为8的整型数组,然后使用 srand() 函数和 rand() 函数随机赋值。接着,使用两重循环实现冒泡排序。最后,使用一重循环输出排序后的数组。
2、自定义求两数之和函数,两数之差函数,两数之乘积函数,对以上三个函数进行调用,实现从键盘上任意输入两个值,可显示其和、差、乘积。
#include <stdio.h>
// 定义函数原型
int add(int a, int b);
int subtract(int a, int b);
int multiply(int a, int b);
int main(void) {
int a, b;
printf("请输入两个整数:");
scanf("%d%d", &a, &b);
printf("它们的和为 %d\n", add(a, b));
printf("它们的差为 %d\n", subtract(a, b));
printf("它们的积为 %d\n", multiply(a, b));
return 0;
}
// 定义函数
int add(int a, int b) {
return a + b;
}
int subtract(int a, int b) {
return a - b;
}
int multiply(int a, int b) {
return a * b;
}

首先使用了 scanf() 函数从键盘输入两个整数,然后使用自定义函数 add()、subtract() 和 multiply() 分别计算它们的和、差和积,最后使用 printf() 函数输出计算结果。
3、输入一串字符,使用指针实现该字符串的反向存放。
#include <stdio.h>
#include <string.h>
int main(void) {
char s[100];
printf("请输入一个字符串:");
scanf("%s", s);
int len = strlen(s);
char *front = s, *back = s + len - 1;
while (front < back) {
char temp = *front;
*front = *back;
*back = temp;
front++;
back--;
}
printf("反转后的字符串为:%s\n", s);
return 0;
}
这段代码使用 scanf() 函数从键盘输入一个字符串,然后使用 strlen() 函数计算字符串的长度。接着,定义两个指针变量 front 和 back,分别指向字符串的头和尾。使用一个循环反转字符串,最后使用 printf() 函数输出反转后的字符串。
望采纳,谢谢,祝楼主生活愉快


简单的C语言,求解,请写出详细过程
你好,a++和++a是自增运算,相当于a=a+1;a--和--a是自减运算,相当于a=a-1 “++a”或“--a”是先自增自减再参与计算;“a++”或“a--”是先参与计算再自增自减 所以,你这道题c=6*6*6=216(a在执行完该条语句才自增为7)...

C语言问题求解
先做p=p*i;再做s=s+p;include <stdio.h> void main(){ int i=1,s=2,p=3;s+=p*=i;printf("%d %d %d\\n",i,s,p);}输出结果:1 5 3

C语言问题 求解如图
(++x,y++)是一个“逗号表达式”。它是先对x自增,再对y取值(并作为表达式的值),然后再y自增。输出的结果为:3 3

c语言编程题求解,感谢!(再讲一下解题思路)
一圈一圈递归。先把最外层一圈的各个坐标与对应数字的关系确定:x=0;y=0;x=n-1;y=n-1时对应的坐标关系。x,y为坐标,lt为每圈左上角的数字(起始),n为阶数。然后递归计算就是了。#include <stdio.h>int get(int x, int y, int lt, int n){ if(x == 0) return lt+y; ...

求解一个C语言题(求详解!,详解!!)
a=1;*b=2,*c=3; \/\/a指针指向的值是1,b是2,c是3 a=b; \/\/a指针 = b指针 这样a,b地址一样,指向的都是2 结果肯定是2,2,3

c语言求解,,,求解,,给出解题思路
1---ar=9ar=9ar=11 2---2468

C语言题目求解
程序思路:先对总数组按年龄从大到小(相同年龄按登记号从小到大)排序。这样老年人部分就直接排序完成,并且在整个队列的前部。之后再对后半部分(非老人)按登记号从小到大再次排列。这样整个数组顺序便是题目想要的顺序。一、初始化函数(或者说是登记函数),定义结构数组,并用随机数填充数组。(...

菜鸟求解一道C语言编程题= =
int i=1; \/\/这里定义的i是整型 double n=1.00,s=1.00,a;do {a=i\/(2*i+1); 整型除整型,结果还是整型,所以,会得到0 n=n*a;s=s+n;i++;} while(n>=eps);把i也改成double类型就好了!而下面的 s1=s1*n\/(2*n+1); \/*求多项式的每一项*\/ 这里s1是double,有...

大学计算机基础:C语言编程问题,求解,
include <stdio.h>int main(){ float ma,tr;int n;scanf("%f",&ma);n=(int)(ma\/1000)+1;switch(n){ case 1: tr=0;break; \/\/① 0 ≤ma<1000时, tr=0%; case 2: tr=0.05;break; \/\/② 1000 ≤ma<2000时, tr=5%; case 3: tr=0.08;break; ...

c语言问题 求解!!谢谢
注意,b-->=0;这里b--是比较之后再自减,比如b=1,先进行b=1>=0判断,后进行b--.程序执行过程中变量变化如下:i=1,b=1,while循环2次,k=2 i=2,b=0,while循环1次,k=3 i=3,b=1,while循环2次,k=5 i=4,b=0,while循环1次,k=6 i=5,b=1,while循环2次,k=8 当b=0时,...

保山市19633129230: 简单C语言程序求解答 -
慎依丽珠: 1. 后缀为.obj和.exe的二进制文件都可以直接运行 是错误的//exe代表可执行文件 可以直接运行的 obj不行2.C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束 是对的//程序都从main函数开始 也在这里结束3.按照C语言规定的...

保山市19633129230: 一道简单的c语言题目求解 -
慎依丽珠: #include <stdio.h> int main() { char c[5]; printf("输入4位数\n"); scanf("%s",c); for(int i=0;i<4;i++) printf("%c ",c[i]); scanf("%s",c); return 0; }

保山市19633129230: C语言 的简单问题 求解
慎依丽珠: 答:例如你输入的是123 x/=10;就相当于x=x/10; 第一次x=123,x/=10,即123/10=12,i=1 第二次x=12,x/=10,即12/10=1,i=2 第三次x=1,x/=10,即1/10=0,i=3 第四次没有执行 最后输出i=3 亲,等了很久了,望及时采纳,谢谢了

保山市19633129230: c语言简单问题!急!求解! -
慎依丽珠: 下面是代码,用c++编辑的#include "iostream.h" class BOX { double length; double width; double height; public: void initial(int a,int b,int c); double volume(); double area(); }; int main() { BOX box; box.initial(3,4,5); //初始化 box.volume(); //体...

保山市19633129230: 一个C语言简单问题! if(!x&&y>0),则表达式 !x 等价于_____. -
慎依丽珠:[选项] A. x==0 B. x==1 C. x != 0 D. x != 1 答案选C,求解为什么?

保山市19633129230: 很简单的C语言问题 求解答... -
慎依丽珠: /*22 : 是33 : 是127127 : 是qPress any key to continue*/#include #include int Prime(int n) { int i,flag = 1; if(n < 2) return 0; &#...

保山市19633129230: 简单C语言 求解
慎依丽珠: 题目没错,运行也没错是输出5; i++是先取值 再++ ,对吧,那么当i=3时还是成立的,所以再+1,i就等于4了,执行空语句,再判断i++<4;问题就在这,此时i是等于4的所以不成立了,所以跳出for语句,但是i还是++了才跳出去吧,这就是为什么i==5

保山市19633129230: C语言简单问题求解 -
慎依丽珠: 首先.fabs(delta)肯定 >=0,所以应改为:if(delta>1e-6) ...就可以了 其次, if(fabs(delta)>1e-6) else if(fabs(delta) 下面的 else 了,而你输入1,2,2 delta

保山市19633129230: C语言一段简单代码的问题(新手求解) -
慎依丽珠: 你在return 0;前面加上两个getchar();或者在return 0;前面加上system("pause");就OK了……因为在winXP或vista或win7上面是不会暂停程序的……,也就是说虽然输入0显示了the Light is red,cars can't run,但是会一闪而过,因为程序...

保山市19633129230: c语言简单问题求助
慎依丽珠: %f用于格式化浮点型数据的输出,a,b,2都是整型数据,所以(a+b)/2也是整型,用%f去格式化整型将不会将整型隐式转换为浮点型,所以显示结果为0.那么将表达式改为(a+b)/2.0是不是就可以呢?是的,表达式的值将为浮点型,符合%f.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网