编写函数exch,该函数接受两个float型数据,并返回两个参数的和。编写main函数,定义两个变量接受键盘输入的两个float型数据,并通过函数调用传递给exch函数,程序结束前,输出两个变量的和,输出数据保留两位数。
时间: 2024-05-01 12:17:05 浏览: 45
```
#include <stdio.h>
float exch(float a, float b)
{
return a + b;
}
int main()
{
float num1, num2;
printf("请输入两个浮点数:");
scanf("%f %f", &num1, &num2);
float sum = exch(num1, num2);
printf("两数之和为:%.2f\n", sum);
return 0;
}
```
相关问题
使用nsis 在卸载过程遍历判断多个程序是否正在运行,如果在运行,则弹出”XX程序正在运行,关闭后再卸载“
可以通过以下步骤实现:
1. 在卸载过程中,获取需要判断的程序的进程名或窗口标题等标识信息。
2. 遍历所有正在运行的进程,判断是否有需要判断的程序正在运行。
3. 如果有程序正在运行,则弹出提示框,告知用户该程序正在运行,需要先关闭程序才能继续卸载。
以下是示例代码(仅供参考):
```
!include "LogicLib.nsh"
Function CheckRunningProcesses
; 需要判断的程序列表
StrCpy $0 "notepad.exe|calc.exe|chrome.exe"
StrCpy $1 "Notepad|Calculator|Google Chrome"
; 将列表拆分成单个程序名
StrCpy $2 $0 1
loop:
StrCmp $2 "" done
StrCpy $3 $2 "" "."
StrCpy $4 $2 "" $3
StrCpy $2 $2 "" ".$3"
StrCpy $5 $1 "" $4
Push $4
Push $5
Call CheckProcessRunning
Pop $5
Pop $4
StrCmp $5 "true" running
Goto loop
done:
FunctionEnd
Function CheckProcessRunning
Exch $0 ; 进程名
Exch 1 ; 窗口标题
Push $1 ; 返回值变量
Push $2 ; 进程ID变量
; 遍历所有进程
System::Call 'kernel32::CreateToolhelp32Snapshot(i, i) i \
(0x00000002, 0)'
Pop $3
System::Call '*(&t512)i.r4'
System::Call '*(i,i,i,&i)i.r5 \
($3, &($4), *i, *i) .r6'
StrCpy $2 0
loop:
System::Call 'kernel32::Process32Next(ir6, ir4) i.r5'
StrCmp $5 "0" done
System::Call '*$4(&i,&i,&i,&i,&i,&t256)i'
StrCmpS $0 12 "$5" notmatch ; 判断进程名是否匹配
; 如果有窗口标题,则判断窗口标题是否匹配
StrCmp $1 "" skipchecktitle
FindWindow $2 "$1" "$5"
StrCmp $2 "0" skipchecktitle
; 进程名和窗口标题都匹配,则判断为正在运行
StrCpy $1 "true"
Goto done
skipchecktitle:
Goto loop
notmatch:
Goto loop
done:
Pop $2
Pop $1
Pop $0
FunctionEnd
Section
; 在卸载前检查是否有程序正在运行
Call CheckRunningProcesses
Pop $0
StrCmp $0 "true" running
Goto done
running:
MessageBox MB_ICONEXCLAMATION|MB_OK \
"请先关闭所有正在运行的程序后再卸载。"
Abort ; 终止卸载过程
done:
SectionEnd
```
Java数据结构与算法代码
下面展示了一些Java数据结构与算法的代码实现:
冒泡排序代码实现O(n^2):
```java
public class Bubble {
/* 对数组a中的元素进行排序 */
public static void sort(Comparable[] a){
for(int i=a.length-1;i>0;i--){
for(int j=0;j<i;j++){
// 比较索引j和索引j+1处的值
if (greater(a[j],a[j+1])){
exch(a,j,j+1);
}
}
}
}
/* 比较v元素是否大于w元素 */
private static boolean greater(Comparable v,Comparable w){
return v.compareTo(w)>0;
}
/* 数组元素i和j交换位置 */
private static void exch(Comparable[] a,int i,int j){
Comparable temp;
temp = a[i];
a[i]=a[j];
a[j]=temp;
}
}
```
归并排序代码实现测试:
```java
public class MergeTest {
public static void main(String[] args) {
Integer[] array = {4, 6, 8, 7, 9, 2, 10, 1,12};
MergeSort.sort(array);
System.out.println(Arrays.toString(array));
}
}
```
快速排序代码实现测试:
```java
public class QuickTest {
public static void main(String[] args) {
Integer[] array = {4, 6, 8, 7, 9, 2, 10, 1,12,10};
QuickSort.sort(array);
System.out.println(Arrays.toString(array));
}
}
```<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [二、Java数据结构与算法---排序(讲解与代码)](https://blog.csdn.net/Royalic/article/details/119427212)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文