⑴ c语言,怎么让一行显示十个数,只能用while循环,如图
在循环里面(printf语句后)加上:
if(i%30==0) printf('\n');
即可
目标程序是输出1000以内3的倍数,若要每10个数换行,则当输出30的倍数之后输出一个换行符即可。
纯手打,望采纳,谢谢。
⑵ C语言(数据的输出)例:每行输出10个数据
输出以后加个空格 不要加/n就行了
再用一个变量套循环判断一下,每输出10次跳转一下单独输出一个换行符
⑶ C语言判断一行所输出的数据的个数
for(m=1;m<n;m++);
printf("%ld",fun(m));
if(m%5=0) printf("\n")
这个语句肯定是有问题的,首先for循环后面有;表示循环完了在再执行printf函数,其次,m= 1开始的,到m = 5的时候换行,也就是说如果前面对的情况下,一行也只输出4个。
⑷ C语言改成每10个数换一行
统计一下输出数字的个数。
分析,第一个输出的是3 然后是 6 9 12 ...
这样 第10个输出的 就是 30
所以 只要 i%30 == 0 就代表输出10个了。
于是
#include<stdio.h>
intmain()
{
inti;
for(i=1;i<=100;i++)
{
if(i%3==0)
printf("%d",i);
if(i%30==0)
printf(" ");
}
}
⑸ C语言 求100—200之间的全部素数,并且输出每10个换一行
第一个问题的分析:如果满足i<=k,则说明这个数不是素数,则不用输出,不执行下面的printf的函数,只有满足i>=k+1(其实是满足1=k+1),才能判断此数为素数,则输出。所以程序是正确的。
第二个问题的分析:两个程序的最终结果是一样的,都是正确的。
程序自然结束后,会有i==k+1,此时是素数,打印数字;而如果是break出循环,则假设不成立,为合数,不打印字符,执行下一次循环。
(5)c语言一行显示十个数据扩展阅读:
如果 为合数,因为任何一个合数都可以分解为几个素数的积;而N和N+1的最大公约数是1,所以不可能被p1,p2,……,pn整除,所以该合数分解得到的素因数肯定不在假设的素数集合中。因此无论该数是素数还是合数,都意味着在假设的有限个素数之外还存在着其他素数。所以原先的假设不成立。也就是说,素数有无穷多个。
⑹ C语言:随机生成100个数存入数组,存入数组过程中保持数组非递减有序。按每行10个数格式显示数组中数据。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int t,i,j,k,arr[100];
srand(time(NULL));
for(i=0;i<100;i++)
{
t=rand();
for(j=0;j<i;j++)
{
if(t<arr[j])
{
for(k=i-1;k>=j;k--)
{
arr[k+1]=arr[k];
}
break;
}
}
arr[j]=t;
}
printf("按非递减有序排列的数组各元素的值是:\n");
for(i=0;i<100;i++)
{
printf("%d ",arr[i]);
if(0==(i+1)%10)
{
printf("\n");
}
}
t=100;
for(i=0;i<t;)
{
if(0==arr[i]%3)
{
for(j=i+1;j<t;j++)
{
arr[j-1]=arr[j];
}
t--;
}
else
{
i++;
}
}
printf("删除能被3整除的各元素后,数组各元素的值是:\n");
for(i=0;i<t;i++)
{
printf("%d ",arr[i]);
if(0==(i+1)%10)
{
printf("\n");
}
}
return 0;
}
⑺ 作C语言编程实现:对输入100个整数进行隆序(从大到小)排序,按每行十个数输出排序后的数据
#include <stdio.h>
#define arrSize 100
typedef enum {swap_right,swap_left}swap_dir;
void init_arr(int* arr,int size);
void quickSort(int* arr, int size);
void print_arr(int* arr,int size);
int main() {
int arr[arrSize];
printf("请输入%d个整数(绝对值小于100000的整数,便于显示):\n",arrSize);
init_arr(arr, arrSize);
printf("完成输入!!!\n");
printf("开始排序\n");
quickSort(arr, arrSize);
printf("结束排序!!!\n");
printf("开始输出\n");
print_arr(arr, arrSize);
printf("结束输出!!!\n");
return 0;
}
void init_arr(int* arr, int size) {
for (int i = 0; i < size; i++) {
printf("请输入第 %d 个整数:",i+1);
scanf("%d",arr+i);
}
}
void quickSort(int* arr, int size) {
if (arr == NULL || size <= 1)
return;
int key_index = 0;
int key_num = arr[key_index];
int front_index = 0;
int back_index = size - 1;
swap_dir dir = swap_right;
while (front_index < back_index) {
if (dir == swap_right) {
if (arr[back_index] < key_num) {
arr[key_index] = arr[back_index];
arr[back_index] = key_num;
key_index = back_index;
front_index++;
dir = swap_left;
}
else {
back_index--;
}
}
else if (dir == swap_left) {
if (arr[front_index] > key_num) {
arr[key_index] = arr[front_index];
arr[front_index] = key_num;
key_index = front_index;
back_index--;
dir = swap_right;
}
else {
front_index++;
}
}
}
if (key_index > 0)
quickSort(arr,key_index);
if (key_index < size -1)
quickSort((arr+key_index + 1),(size - 1 - key_index));
}
void print_arr(int* arr, int size) {
for (int i = 0; i < size; i++) {
printf("%5d ",*(arr + i));
if ((i + 1) % 10 == 0) {
printf("\n");
}
}
}
⑻ 用C语言写程序输出要求控制每行输出五个数,怎么控制
在C语言写程序输出时,要控制每行输出数据的个数,可以通过自定义计数器来完成。
如:
// 输出自然数1-30,每5个数为一行
main()
{ int i;
int cnt=0; // 定义cnt用作输出数据的计数器,初始为0
for( i=1;i<=30;i++ ) // 循环30次
{ printf("%5d",i); // 输出数据值
cnt++; // 每输出一个值,计数器加一次
if( cnt%5==0 ) // 假设每行输出5个(如果计数器与5取余为0,则换行)
printf("\n"); // 输出换行
}
}
定义一个计数器,然后每次就自加,当%5==0的时候就printf("\n");看例子,希望能帮到你。
#include
void
main()
{
int
count=0;
int
i;
for(i=1;i<=20;i++)
{
printf("%d\t",i);
count++;
if(count%5==0)
printf("\n");
}
}
⑼ C语言利用随机函数模拟 30 个某班学生成绩,一位小数,一行 10 个数据,平均分,高于平均分值
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
voidmain()
{
intstud[30],i,j;
intrand();
floatav=0;//表示平均数
intm=0,n=0;//m表示高于平均分的人数,n表示不及格人数
srand((int)time(0));
for(i=0;i<30;i++)
stud[i]=rand()%60+40;
for(i=0;i<3;i++)
{
printf(" ");
for(j=0;j<10;j++)
{
printf("%4d",stud[i*10+j]);
av+=stud[i*10+j];
}
}
av/=30;
printf("%f ",av);
for(i=0;i<30;i++)
{
if(stud[i]>av)
m++;
if(stud[i]>=60)
n++;
}
printf("高于平均分人数:%d,不及格人数:%d ",m,n);
}
结果:
94 70 79 67 53 86 40 82 97 97
50 87 98 71 42 91 69 66 72 91
82 69 42 77 53 67 60 75 87 84 73.266667
高于平均分人数:15,不及格人数:24
⑽ c语言 将数据读出并进行排序,然后将排好序的数据按照原始数据的格式写入(一行10个 在线,402个数据
//sumos团队
以下程序符合要求,在VC6.0中编译通过
//任何其他问题,追问我哦 ^_^
#include<stdio.h>
#include<fstream.h>
#include<windows.h>
#define MaxSize 402
typedef struct{ //存取数据的结构体
int data[MaxSize];
}Data;
int data[MaxSize];
bool WriteNumbers( int);
bool ReadNumbers();
void Sort( int [], int ,int);
bool Init();
int main(){
WriteNumbers( 0); //产生待排序的随机数文件
ReadNumbers(); //读取文件内容
Sort( data, 0, MaxSize - 1); //排序
WriteNumbers( 1); //重新写入文件
return 0;
}//main
void Sort( int _data[], int _beg, int _end){
int i = _beg, j = _end, tmp;
if( _beg < _end){
tmp = data[i];
while( i < j){
while( i < j && data[j] >= tmp){
j--;
}
data[i] = data[j];
while( i < j && data[i] <= tmp){
i++;
}
data[j] = data[i];
}
data[i] = tmp;
Sort( _data, _beg, i - 1);
Sort( _data, i + 1, _end);
}
}
//读取数据
bool ReadNumbers(){
ifstream ifile;
Data num; int p = 0;
ifile.open( "d:\\a.dat", ios::in | ios::binary);
if( ifile){
ifile.read( ( char *)&num, sizeof( num));
for( int i = 0; i < MaxSize; i++){
data[i] = num.data[i];
}
ifile.close();
printf( "读入数据完成\n");
return true;
}else{
printf( "读入数据失败:检查数据文件d:\\a.dat是否存在。\n");
return false;
}
}//ReadNumbers
//产生测试数据
bool WriteNumbers( int cmd){
Data num;
ofstream ofile;
ofile.open( "d:\\a.dat", ios::out | ios::binary);
if( ofile){
for( int i = 0; i < MaxSize; i++){
if( cmd) num.data[i] = data[i];
else num.data[i] = rand();
}
ofile.write( ( char *)&num, sizeof( num));
ofile.close();
printf( "写入数据完成\n");
return true;
}else{
printf( "写入文件失败: 检查磁盘写保护状态。\n");
return false;
}
}//WriteNumbers