printf("现将物资信息按采购人的名字进行排序(名字相同放一起)。\n"); for(i=0;i<7;i++){ for(q=0;q<7-i;q++){ if(i!=q){ strcpy(f,"0"); strcpy(u,"0"); strcpy(p,"0"); t=0,e=0; if(strcmp(s[i].cosumer,s[q].cosumer)==0){ strcpy(f,s[q].cosumer); strcpy(s[q].cosumer,s[i-1].cosumer); strcpy(s[i-1].cosumer,f); strcpy(u,s[q].goods); strcpy(s[q].goods,s[i-1].goods); strcpy(s[i-1].goods,u); strcpy(a,s[q].num); strcpy(s[q].num,s[i-1].num); strcpy(s[i-1].num,a); t=s[q].count; s[q].count=s[i-1].count; s[i-1].count=t; t=s[i].count; s[q].count=s[i-1].count; s[i-1].count=t; e=s[q].price; s[q].price=s[i-1].price; s[i-1].price=e; } } } } printf("现将您修改后的物资信息进行重新保存,请输入重新保存的文件名:"); scanf("%s",filename_j); if((fp=fopen(filename_j,"w+"))==NULL){ printf("无法打开此文件\n"); exit(0); }
时间: 2024-03-31 10:36:44 浏览: 19
这段代码看起来像是对一个物资清单进行排序和保存操作。具体来说,它使用了冒泡排序的方式,按照采购人的名字对物资信息进行排序(如果名字相同,则将它们放在一起)。排序过程中,对于每一对需要比较的记录,如果它们的采购人名字相同,则交换它们的顺序。最后,它会要求用户输入一个新的文件名,将排序后的物资信息重新保存到该文件中。
但是,这段代码存在一些问题,比如没有对输入的文件名进行合法性检测,没有对文件操作的返回值进行检测,等等。在实际应用中,需要对这些问题进行处理,以保证程序的健壮性和可靠性。
相关问题
以下程序采用冒泡排序算法,将输入的整数按升序进行排序并输出。 请将以下程序填写完整。 #include <stdio.h> #define N 10 int main(){ int a[N], i, j, temp; printf("Input 10 numbers:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=1; 6 ;i++) for(j=9; ;j--) if( ) { ; } printf("The sorted numbers:\n"); for(i=0;i<N;i++) printf("%d ",a[i]); }
好的,我来帮您补充一下冒泡排序的程序。
```c
#include <stdio.h>
#define N 10
int main() {
int a[N], i, j, temp;
printf("Input 10 numbers:\n");
for (i = 0; i < 10; i++)
scanf("%d", &a[i]);
for (i = 1; i < N; i++) {
for (j = N-1; j >= i; j--) {
if (a[j] < a[j-1]) {
temp = a[j];
a[j] = a[j-1];
a[j-1] = temp;
}
}
}
printf("The sorted numbers:\n");
for (i = 0; i < N; i++)
printf("%d ", a[i]);
return 0;
}
```
实现思路如下:
1. 首先输入需要排序的数据。
2. 通过两层循环,对数组进行遍历。
3. 内层循环从右向左遍历数组,比较相邻两个元素的大小。
4. 如果左边的元素比右边的元素大,则交换它们的位置。
5. 外层循环从数组的第二个元素开始,每次循环后,数组的前面 i 个元素已经排好序。
6. 最后输出排序后的数组。
希望我的回答能够帮到您!
使用C语言编程,按照名字的拼音进行排序
好的,根据您的要求,可以使用字符串库中的strcmp函数对名字进行比较,并使用冒泡排序算法对名字进行排序。以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
int i, j, n;
char temp[20];
printf("请输入名字的数量:");
scanf("%d", &n);
char name[n][20];
//读入名字
for (i = 0; i < n; i++) {
printf("请输入第%d个名字:", i + 1);
scanf("%s", name[i]);
}
//按拼音进行排序
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (strcmp(name[j], name[j + 1]) > 0) {
strcpy(temp, name[j]);
strcpy(name[j], name[j + 1]);
strcpy(name[j + 1], temp);
}
}
}
//输出排序结果
printf("按拼音排序后的名字为:\n");
for (i = 0; i < n; i++) {
printf("%s\n", name[i]);
}
return 0;
}
```
希望可以帮到您!
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)