c程序设计题:从键盘输入十个字符串,用选择排序法从大到小排列,并输出结果。 我的程序是这样的:

#include<stdio.h>
#include<string.h>
int main()
{
char str[10][100],temp;
inti,j,k;
printf("输入10个字符串\n");
for(i=0;i<10;i++)
gets(str[i]);
printf("\n");
for(i=0;i<9;i++)
{
k=i;
for(j=i+1;j<10;j++)
if(strcmp(str[k],str[j])<0)
k=j;
if(k!=i)
{
strcpy(temp,str[k]);
strcpy(str[k],str[i]);
strcpy(str[i],temp);
}
}
for(i=0;i<10;i++)
puts(str[i]);
}

为什么运行不起来,哪里错了,求高手解答啊!T^T

#include<stdio.h>
#include<string.h>
int main()
{
char str[10][100],temp[100]; //temp定义字符串
int i,j,k; //int 和i靠的很近
printf("输入10个字符串\n");
for(i=0;i<10;i++)
gets(str[i]);
printf("\n");
for(i=0;i<9;i++)
{
k=i;
for(j=i+1;j<10;j++)
if(strcmp(str[k],str[j])<0)
k=j;
if(k!=i)
{
strcpy(temp,str[k]);
strcpy(str[k],str[i]);
strcpy(str[i],temp);
}
}
for(i=0;i<10;i++)
puts(str[i]);
}

可以,望采纳。。。。。。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-24
temp要定义成char型数组,只是定义成char型是不能strcpy的。追问

书上的例子就是定义char之后strcpy的啊!你前面一句对的,后面一句是不是有问题的额(⊙o⊙)…?不过还是谢谢啦

c语言: 输入10个字符串,用选择排序法对十个字符串按大到小排序并...
define N 10\/* 设定要输入的字符串个数,可更改 *\/ int cmp(char *p1,char *p2) \/* 字符串比较函数 *\/ {int i=0;while (*(p1+i)==*(p2+i))if (*(p1+i++)=='\\0') return 0; \/* 这里是先判断*(p1+i)=='\\0',然后再是i++ *\/ return (*(p1+i)-*(p2+i));} ...

C语言问题:从键盘输入十个整数,用选择排序法对输入的数据从小到大的顺序...
int a[10],i;printf("please input 10 numbers:\\n");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("The array is:\\n");for(i=0;i<10;i++)printf("%-4d",a[i]);SelectSort(a,10);printf("\\nAfter sort the array is:\\n");for(i=0;i<10;i++)printf("%-4d",a[...

...从用户输入10个整数,对其按照从小到大的顺序排序,并输出结果...
\/\/要求任意输入10个数,然后按从小到大顺序输出 include<stdio.h> int main(){ int a[10];int i,j;int temp;printf("请输入10个整数:");for(i=0;i<10;i++){ scanf("%d",&a);} for(i=0;i<9;i++){ for(j=0;j<9-i;j++){ if(a[j]>a[j+1]){ temp=a[j];a[j]...

如题。用选择排序法编写c语言,实现从键盘上输入10个数,按从大到小的...
printf("从大到小");for (i = 0; i < 10; i++)printf("%2d", a[i]);return 0;}

...从用户输入10个整数,对其按照从小到大的顺序排序,并输出结果...
至于printf()函数,它是C语言中非常重要的格式化输出工具,它允许我们根据预设的格式控制字符串来定制输出内容。在这个程序中,它用于接收用户输入、显示排序结果以及输出控制信息。总结,通过以上步骤,C语言程序就能实现用户输入10个整数并按顺序输出的功能,同时利用printf()函数进行格式化输出和数据交换。

C语言编程题: 输入10个字符串,将其从大到小排序后输出。
15];while(~scanf("%c",&n)){ for(int i=0;i<10;i++){ scanf("%d",&a[i]);} getchar();if(n=='A') swap1(a,10);else swap2(a,10);for(int i=0;i<10;i++){ if(i==0)printf("%d",a[i]);else printf(" %d",a[i]);} printf("\\n");} } 运行效果:...

c语言高手帮忙:从键盘输入10个整数。用选择法或冒泡法将它们从小到大...
{ int s[10],t,i,j,x;printf("input 10 numbers:\\n");for(t=0;t<10;t++)scanf("%d",&s[t]);for(i=0;i<9;i++)for(j=0;j<9-i;j++)if(s[j]>s[j+1]){t=s[j];s[j]=s[j+1];s[j+1]=t;} printf("the result is:\\n ");for(j=0;j<10;j++)printf("...

C语言从键盘输入任意的10个整数,从中找出最大值和最小值并输出
1、找出最大值并输出的源代码如下: #include <stdio.h> int main() { int array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}; int loop, largest; largest = array[0]; for(loop = 1; loop < 10; loop++) { if( largest < array[loop] ) largest = array[loop]; } printf("最大...

C语言:,用"选择法"对输入的10个字符按由大到小顺序排列
h> int main(void){ char a[11];int i,j;int max;int t;printf("请输入10个字符:\\n");gets(a);for(i = 0; i < 9; i++){ max = i;for(j = i+1; j < 10; j++)if(a[max] < a[j])max = j;t = a[max];a[max] = a[i];a[i] = t;} puts(a);} ...

用选择法对10个整数由大到小排序。要求画出流程图
其中,每经过一轮,就能确定出一个元素的位置。通过n-1轮选择,就能将这n个元素按照从大到小的顺序排好序。选择排序的时间复杂度为O(n^2)。下面是使用C语言实现选择排序算法的示例代码:include <stdio.h> void selection_sort(int arr[], int n){ int i, j, max_idx;for (i = 0; i ...

相似回答