用计算机C语言编程,程序设计题:从键盘输入十个数,将他们进行降序排列。 求解答需要详细过程,谢谢! C语言编程问题,求解答,谢谢谢谢?
C\u8bed\u8a00\u7a0b\u5e8f\u8bbe\u8ba1\u9898\uff5b\u4f1a\u7ed5\u5708\u7684\u6570\uff5d\u6c42\u89e3\u7b54\uff0c\u8981\u5b8c\u6574\u4ee3\u7801//\u6211\u662f\u6709\u591a\u95f2\uff0c\u5b8c\u6574\u7ed9\u4f60\u5199\u51fa\u6765\u4e86\uff0c\u7b80\u5355\u6ce8\u91ca#includevoid CoreFun(int n); //\u6838\u5fc3\u7b97\u6cd5int main(){int num[100]; //\u4fdd\u5b58\u7528\u6237\u8f93\u5165int i;for(i=0;;i++) //\u76f4\u5230\u7528\u6237\u8f93\u51650\u9000\u51fafor\u5faa\u73af{scanf("%d",&num[i]);if(num[i]==0)break;}for(i=0;num[i]!=0;i++) //\u5faa\u73af\u8fdb\u884c\u8ba1\u7b97{CoreFun(num[i]);}return 0;}void CoreFun(int n){int sum = 0;int result[100]; int i = 0;int temp = n;int j;printf("%d ",n);while(1){while(temp>0){int t = temp%10;t = t*t;sum += t;temp/=10;}result[i++] = sum;for(j=0;j<i-1;j++)if(sum==result[j]){printf("%d\n",sum);return;}temp = sum;printf("%d ",sum);sum = 0;}}
#includeint main(){ int n,m,k,t,i,j; int a[1000],b[1000]={0}; while(scanf("%d",&n),n) { for(i=0;ib[j]) k=j; if(k!=i) {t=a[k];a[k]=a[i];a[i]=t; t=b[k]; b[k]=b[i]; b[i]=t;} } for(i=0;i<n-1;i++) printf("%d ",a[i]); printf("%d\n",a[n-1]); } return 0;}
#include<stdio.h>
int main()
{int i,j,t,a[10];
for(i=0;i<10;i++) //输入10个整数
scanf("%d",&a[i]);
for(i=0;i<9;i++) //降序冒泡排序
for(j=0;j<9-i;j++)
if(a[j]<a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
for(i=0;i<10;i++) //输出
printf("%d ",a[i]);
printf("
");
return 0;
}
void _tmain(int argc, _TCHAR* argv[])
{
char a[10];
char i, j;
char temp;
for (i = 0; i < 10; i++)
{
scanf_s("%d", &a[i], 1);
getchar();
}
for (i = 1; i < 10; i++)
{
for (j = 1; j < 10; j++)
{
if (a[j - 1] < a[j])
{
temp = a[j - 1];
a[j - 1] = a[j];
a[j] = temp;
}
}
}
for (i = 0; i < 10; i++)
printf("%d", a[i]);
while (1);
}
//直接可用,就是冒泡算法。
#include<stdio.h>
int main()
{
int a[10],i,j,tmp,n=10;
//循环输入
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
//冒泡排序
for(i=0;i<n-1;i++)//外循环推动内循环,10个数循环9次就可以排序完
{
for(j=0;j<n-i-1;j++) //内循环每次将最小值放大数组的最右边,j<n-i-1,减i是因为数组最右边有i个数已经是降序
{
if(a[j]<a[j+1])
{
tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
}
}
//循环输出
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
}
冒泡排序看的累,可以百度看看别人是怎么讲解的,也可以在循环的冒泡排序的过程中将每次一的排序过程打印出来,看看中间的过程帮组理解
你好,这是我自己亲自写的代码,经过调试成功了。有不明白的可以问我。
#include <stdio.h>
/*函声明区*/
void inputArr(int *, int);
void printArr(int *, int);
void Bubble_sort(int *, int);
void main()
{
/*数组初始化*/
int a[10] = { 0 };
printf("Please input 10 values:\n");
inputArr(a, 10);
Bubble_sort(a, 10);
printf("Please input the array after the sort:\n");
printArr(a, 10);
}
//输入10个数
void inputArr(int *arr,int n)
{
int i;
for (i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
}
//冒泡排序
void Bubble_sort(int *array, int n)
{
for (int i = 0; i < n - 1; i++)
{
for (int j = 0; j < n-i; j++)
{
if (array[j] < array[j + 1])
{
int temp;
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
}
//输出10个数
void printArr(int *arr, int n)
{
for (int i = 0; i < n; i++)
{
printf("%3d", arr[i]);
}
printf("\n");
}
#include<stdio.h>
#include<stdlib.h>
void bubble_sort(int a[], int len)
{
int i, j, temp;
int exchange = 0;
for (i = 0; i<len - 1; i++)
{
exchange = 0;
for (j = len - 2; j >= i; j--)
{
if (a[j + 1]>a[j])
{
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
exchange = 1;
}
}
if (exchange != 1)
return;
}
}
int main()
{
int i = 0;
int array[10];
for (i = 0; i < 10; i++)
{
printf("请输入第%d个数\n",i+1);
scanf("%d",&array[i]);
}
bubble_sort(array, 10);
printf("逆序排序后为\n");
for (i = 0; i < 10; i++)
{
printf("%d,",array[i]);
}
system("pause");
getchar();
return 0;
}
绛旓細include <stdio.h> int main(){ char c;int x = 0, y = 0;printf("***璇锋寜鎻愮ず閫夋嫨***\n");printf("a---鏈牎鍏ㄦ棩鍒跺鐢焅n");printf("b---鏈牎澶滃ぇ瀛︾敓\n");printf("c---澶栨牎瀛︾敓\n");scanf("%c", &c);if(c == 'a'){ printf("浣犳槸鏈牎鍏ㄦ棩鍒跺鐢燂紝涓嶆敹浠樿垂 ^_...
绛旓細鍓嶉潰閭d釜鏈夌偣闂锛岃繖鏄敼杩涘悗鐨勶細include<iostream> include<string> include<stack> include<cctype> using namespace std;double count(double left,char op,double right);int you(char op);double chuli(string stra);stack<double>opnd;stack<char>optr;char car; string str="";double count(...
绛旓細绗竴棰:include <stdio.h> int main(){ int i,j;for(i=1;i<=26;i++){ for(j=1;j<=i;j++)printf(" %c ",'A'+j-1);printf("\n");} getchar();return 0;} 37棰:include <stdio.h> int main(){ int i=0,a[10]={0};float sum=0.0;for(i=0;i<10;i++){ p...
绛旓細include "stdio.h"int main(){ int a[10]; int *max,*min,i,tmp; max=min=&a[0]; printf("璇疯緭鍏10涓暟:\n"); for(i=0;i<10;i++) { scanf("%d",&a[i]); if(*maxa[i]) { min=&a[i]; } } printf("鏈澶у:%d 涓嬫爣:%d\n",*max,...
绛旓細妤间富 鎴戞潵鎷晳浣爚~~ 10閬撻鍏ㄩ儴濂変笂~~锛侊紒锛佹湁浜涢鍒汉宸茬粡缁欏嚭浜嗭紝鎴戝紩鐢ㄤ竴涓嬪晩(鎳掑緱閲嶅啓浜)锛屽ぇ瀹朵笉瑕佸柗鎴戝摝~~~绗竴棰 include<stdio.h> int main(){ int d1,d2,d3,n=253;d1=n%10;d2=n/10%10;d3=n/100%10;printf("253鐨勶細\n涓綅鏁颁负%d\n鍗佷綅鏁颁负%d\n鐧句綅鏁颁负%d\n...
绛旓細/ 缁欎綘鐨勫缓璁細寤鸿浣犺嚜宸卞彂鍔ㄨ剳绛嬶紝瑙e喅濡傛灉鏈夌エ鏁扮浉鍚岀殑鎯呭喌銆傛垜鍐欑殑浠g爜娌℃湁鍋氳繖绉嶅垽鏂紝鎵浠ュ綋鏈夌浉鍚岀エ鏁版椂浼氬嚭閿欒鐨勭粨鏋滐紒/ include <stdio.h> include <stdlib.h> //娓呭睆鍑芥暟鐨勫ご鏂囦欢 char szName[5][10]; //瀛樻斁瀛︾敓鍚嶅瓧 int nNum[5]={0}; //瀛樻斁姣忎釜鍚屽鐨勭エ鏁 int ...
绛旓細銆愮涓閬撱慽nclude <iostream> using namespace std;define pi 3.14159265 double maxvolume(double a,double b){ double v1,v2,r;r=b/(2*pi+2);v1=pi*r*r*a;r=a/(2*pi+2);v2=pi*r*r*b;if(v1>v2)return v1;else return v2;} int main(){ double a,b;cout<<"璇疯緭鍏...
绛旓細濡備笅:鐜板湪璁$畻鏈浜岀骇鑰冭瘯绋嬪簭璁捐棰鐨勭幆澧冩槸vs2010銆倂s2010鏄渶瑕佸垱寤哄伐绋嬬殑锛屼竴涓崟鐙殑鏂囦欢鏄病鏈夊姙娉曡繍琛岀殑锛屽鏋滀綘浣跨敤鐨勬槸鑰冭瘯杞欢锛岃冭瘯棰橀噷搴旇鏄湁宸ョ▼鐨勶紝杞欢涔熷簲璇ヨ兘甯綘鑷姩鎵撳紑vs2010宸ョ▼锛屽疄鍦ㄤ笉琛屽氨鑷繁鍒涘缓銆傚綋鐒讹紝浣犱篃鍙互涓嶄娇鐢╲s2010锛岀敤cfree锛宒evc++杩欑涓嶉渶瑕佸垱寤哄伐绋嬬殑杞欢锛屽崟鐙竴...
绛旓細c璇█绋嬪簭璁捐鍗曞厓娴嬭瘯棰樺涓嬶細C璇█鏄竴绉璁$畻鏈虹▼搴忚璁璇█銆傚畠鏃㈡湁楂樼骇璇█鐨勭壒鐐癸紝鍙堝叿鏈夋眹缂栬瑷鐨勭壒鐐广傚畠鍙互浣滀负绯荤粺璁捐璇█锛岀紪鍐欏伐浣滅郴缁熷簲鐢ㄧ▼搴忥紝涔熷彲浠ヤ綔涓哄簲鐢绋嬪簭璁捐璇█锛岀紪鍐涓嶄緷璧栬绠楁満纭欢鐨勫簲鐢ㄧ▼搴忋傜畝浠嬶細闅忕潃绉戞妧鐨勫彂灞曞拰浜哄伐鏅鸿兘鏃朵唬鐨勬潵涓达紝璁$畻鏈轰腑绋嬪簭璁捐鍏锋湁瓒婃潵瓒婇噸瑕佺殑鍦颁綅銆侰...
绛旓細C璇█绋嬪簭璁捐棰樼洰,甯竴涓嬪繖,杩藉姞150鍒 鍚屽閫氳褰曠鐞嗙郴缁熴嬬殑璁捐涓庡疄鐜板唴瀹瑰己鍖栧涔燙璇█涓湁鍏抽摼琛ㄥ強澶栭儴鏂囦欢鐨勫唴瀹,鐙珛璁捐鍚屽閫氳褰曠鐞嗙郴缁,骞缂栫▼瀹炵幇浠ヤ笅鍔熻兘:1銆佹暣涓郴缁熷潎鐢–璇█瀹炵幇;2銆佸埄鐢ㄦ寚閽堛侀摼琛ㄦ潵... 鍚屽閫氳褰曠鐞嗙郴缁熴嬬殑璁捐涓庡疄鐜 鍐呭 寮哄寲瀛︿範C璇█涓湁鍏抽摼琛ㄥ強澶栭儴鏂囦欢鐨勫唴瀹,鐙珛...